VBA - Erreur Exécution

VBA - Erreur Exécution - VB/VBA/VBS - Programmation

Marsh Posté le 29-04-2019 à 22:38:45    

Bonjour,  
 
Merci de m'aider à optimiser mon code ci-dessous.
Actuellement j'ai une erreur d'exécution 1004 à la ligne "Selection.Offset(1, 0).Select".
 
 
Dim MyDataInventaire, MyDataInventaireHead, MyDataStock As Object
Dim mycol, myrow, i, j As Long
Dim rg As Variant
Dim reponse As Integer
Dim anneesel, moissel, moisannee As String
 
Set MyDataHead = Sheets("Inventaire" ).Range("B3" ).CurrentRegion
anneesel = MyDataHead.Range("C2" )
moissel = MyDataHead.Range("B2" )
If anneesel = "" Or moissel = "" Then
    MsgBox "Merci de selectionner le mois et/ou l'année !", vbCritical, "Informations"
Else
 
Set MyDataStock = Sheets("Stock" ).Range("A1" ).CurrentRegion
moisannee = moissel & "/" & anneesel
Set rg = MyDataStock.Range("A1:A10000" ).Find(moisannee, MyDataStock.Range("A1" ), LookIn:=xlValues, LookAt:=xlPart)
 
If Not rg Is Nothing Then
 
MsgBox "Un Inventaire a déja été défini pour cette période. Merci de selectionner une autre période !", vbCritical, "Informations"
Else
reponse = MsgBox("Voulez vous vraiment enregistrer cet inventaire ?", vbYesNo + vbQuestion, "Confirmation" )
 If reponse = vbYes Then
 
Set MyData = Sheets("Inventaire" ).Range("C7" ).CurrentRegion
mycol = MyData.Columns.Count
myrow = MyData.Rows.Count
 
Sheets("Stock" ).Activate
Range("A2" ).Select
Selection.End(xlDown).Select
 
For i = 2 To myrow - 1
For j = 2 To mycol - 1
If MyData(i, j) <> 0 Then
Selection.Offset(1, 0).Select
ActiveCell.Offset(0, 1).Value = moisannee
ActiveCell.Offset(0, 2).Value = MyData(1, j)
ActiveCell.Offset(0, 3).Value = MyData(i, 1)
ActiveCell.Offset(0, 4).Value = MyData(i, j)
End If
Next j
Next i
 
MsgBox "Inventaire enregistré avec succès !", vbInformation, "Informations"
restaurer_configuration
End If
End If
End If

Reply

Marsh Posté le 29-04-2019 à 22:38:45   

Reply

Marsh Posté le 30-04-2019 à 12:29:57    

Resend !

Reply

Marsh Posté le 30-04-2019 à 12:48:55    

 
            Bonjour,
 
            un bon code VBA n'ayant besoin d'aucun affreux Activate ni Select pour accéder aux données …
 
            Quelle est donc la sélection au moment de l'erreur ?‼


Message édité par Marc L le 30-04-2019 à 12:49:49
Reply

Marsh Posté le 30-04-2019 à 12:59:35    

Bonjour,  
Merci Marc L pour ton retour rapide.
Je débute en programmation sous VBA et pour l'heure les seuls éléments que j'ai sont l'"Activate" et le "Select" pour insérer des données dans une feuille Excel.
 
Merci de m'aider à optimiser mon code.
 
L'erreur apparaît au moment de la sélection de la nouvelle ligne après la dernière ligne du tableau: pour pouvoir insérer les nouvelles valeurs dans le tableau.

Reply

Marsh Posté le 02-05-2019 à 12:01:58    

 
            Comme la question a été posée ailleurs, je conclus ici juste en indiquant la ligne déclenchant l'erreur ne respecte aucune logique …
 
            Activer l'Enregistreur de macros puis opérer manuellement : la solution sera livrée sur un plateau.
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed