VBA - Erreur Exécution - VB/VBA/VBS - Programmation
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 ?‼
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.
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.
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