VBA débutant problème(s)
Bonjour à tous !
Je suis débutant en VBA et j'écris un code pour que dans un fichier, Excel passe en revue chaque cellule d'un fichier, compare la valeur de la cellule à la liste d'un autre fichier, et si les valeurs sont identiques, il insère et colle la ligne du premier fichier vers le deuxième. Malheureusement, j'ai plusieurs bugs ... Quelqu'un saurait de quoi il s'agit ? Merci d'avance !
Sub Macro1()
'
' Macro1 Macro
'
'Définition des 4 variables
Dim li As Integer
'Copie des quatres colonnes
Sheets("Feuil1").Select
Columns("H:H").Select
Selection.Copy
Sheets("Feuil2").Select
Range("E1").Select
ActiveSheet.Paste
Sheets("Feuil1").Select
Columns("C:C").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil2").Select
Columns("H:H").Select
ActiveSheet.Paste
Sheets("Feuil1").Select
Range("J:J,L:L").Select
Range("L1").Activate
Selection.Copy
Sheets("Feuil2").Select
Range("N1").Select
ActiveSheet.Paste
Range("N1").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "Descriptif"
Range("N2").Select
'Valeur de li, variable de la ligne'
li = 1
Do While Not (IsEmpty(ActiveSheet.Cells(li, 5)))
Dim c As Integer
Dim x As Integer
Dim v As Integer
c = Range(li, 5).Value
x = 7
v = Workbooks("Copie test-modif-planning-montage-forbach.xlsm").Sheets("PLANNING").Range(x, 5).Value
If v - c = 0 Then
Workbooks("Copie test-modif-planning-montage-forbach.xlsm").Activate
Rows(x + 1).Insert
Workbooks("Copie-modif-SAV liste.xlsm").Activate
Rows(li).Copy
Workbooks("Copie test-modif-planning-montage-forbach.xlsm").Activate
Rows(x).Select
ActiveSheet.Paste
Else
x = x + 1
' Passe à la ligne suivante
li = li + 1
End If
Loop
End Sub
Bonjour
Remplace le debut de ta macro par ceci
Sub Macro1()
Dim li As Integer
'Copie des quatres colonnes
With Sheets("Feuil1")
.Columns("H:H").Copy Sheets("Feuil2").Range("E1")
.Columns("C:C").Copy Sheets("Feuil2").Columns("H:H")
.Range("J:J,L:L").Copy Sheets("Feuil2").Range("N1")
End With
Sheets("Feuil2").Range("N1") = "Descriptif"
'Range("N2").Select
'Valeur de li, variable de la ligne'
li = 1
....
Plus bas dans cette ligne, on est sur quelle feuille ?
Workbooks("Copie test-modif-planning-montage-forbach.xlsm").Activate
Rows(x + 1).Insert
Cordialement
Merci beaucoup pour ton début de réponse !
Pour la partie du code que tu mentionnes en dernier, on est sur la feuille "PLANNING".
Merci d'avance
re
code à essayer
...
Do While Not (IsEmpty(Sheets("Feuil2").Cells(li, 5)))
Dim c As Integer
Dim x As Integer
Dim v As Integer
c = Range(li, 5).Value
x = 7
v = Workbooks("Copie test-modif-planning-montage-forbach.xlsm").Sheets("PLANNING").Range(x, 5).Value
If v - c = 0 Then
Workbooks("Copie test-modif-planning-montage-forbach.xlsm").Sheets("PLANNING").Rows(x + 1).Insert
Workbooks("Copie-modif-SAV liste.xlsm").Sheets("??????").Rows(li).Copy
Workbooks("Copie test-modif-planning-montage-forbach.xlsm").Sheets("PLANNING").Rows(x).Paste
Else
x = x + 1
....
Si ok, merci de clôturer le fil en cliquant sur las case à cocher verte à coté du bouton Editer
Crdlt