Bonjour, voila je ne maitrise absolument pas le VBA et j'ai un soucis que je n'arrives pas a régler sous Excel.
En fait j'ai deux feuilles dans un même classeur et je voudrais mettre à jour certaine valeur de la feuille 1 en fonction de la feuille 2 :
- Rechercher valeur colonne 1 de feuille 1 dans colonne 1 de feuille 2
- Copier valeur correspondante colonne 6 de la feuille 2 puis coller dans colonne 5 feuille 1
- Faire de même pour chaque ligne de la feuille 1
J'ai chercher pas mal et j'ai trouver une macro qui fait presque ce que je veux, seulement celle-ci me fait une erreur "dépassement de capacité" quand elle ne trouve pas la valeur de la colonne 1 de la feuille 1 dans la feuille 2
Macro :
Sub RechercheCopie()
Dim Nom As String
Dim Condition As Boolean
Dim i, j As Integer
Sheets(1).Select
i = 1
Do
Nom = Cells(i, 1).Value
j = 1
Condition = False
Do
If Nom = Sheets(2).Cells(j, 1).Value Then
Sheets(1).Cells(i, 5).Value = Sheets(2).Cells(j, 6).Value
Condition = True
End If
j = j + 1
Loop While (ActiveCell.Value <> "" And Condition = False)
i = i + 1
Loop While Cells(i - 1, 1).Value <> ""
End Sub
Une modification avait été proposée par l'auteur de la macro pour eviter l'erreur lorsque la valeur est trouvée mais ca ne fonctionne pas, du coup seuls les lignes dont la colonne 1 de la feuille 2 est vide sont copiées, pas les autres :
Sub RechercheCopie()
Dim Nom As String
Dim Condition As Boolean
Dim i, j As Integer
Sheets(1).Select
i = 1
Do
Nom = sheets(1).Cells(i, 1).Value
j = 1
Condition = False
Do
If Nom = Sheets(2).Cells(j, 1).Value Then
Sheets(1).Cells(i, 5).Value = Sheets(2).Cells(j, 6).Value
Condition = True
End If
j = j + 1
Loop While (Sheets(2).Cells(j - 1, 1).Value <> "" And Condition = False)
i = i + 1
Loop While Sheets(1).Cells(i - 1, 1).Value <> ""
End Sub
Voila
Je n'y connais absolument rien en visual basic mais j'ai quand même envie de comprendre mais je ne trouve pas de "cours", si vous aviez un début de solution sa m'arrangerai
Merci beaucoup
En fait j'ai deux feuilles dans un même classeur et je voudrais mettre à jour certaine valeur de la feuille 1 en fonction de la feuille 2 :
- Rechercher valeur colonne 1 de feuille 1 dans colonne 1 de feuille 2
- Copier valeur correspondante colonne 6 de la feuille 2 puis coller dans colonne 5 feuille 1
- Faire de même pour chaque ligne de la feuille 1
J'ai chercher pas mal et j'ai trouver une macro qui fait presque ce que je veux, seulement celle-ci me fait une erreur "dépassement de capacité" quand elle ne trouve pas la valeur de la colonne 1 de la feuille 1 dans la feuille 2
Macro :
Sub RechercheCopie()
Dim Nom As String
Dim Condition As Boolean
Dim i, j As Integer
Sheets(1).Select
i = 1
Do
Nom = Cells(i, 1).Value
j = 1
Condition = False
Do
If Nom = Sheets(2).Cells(j, 1).Value Then
Sheets(1).Cells(i, 5).Value = Sheets(2).Cells(j, 6).Value
Condition = True
End If
j = j + 1
Loop While (ActiveCell.Value <> "" And Condition = False)
i = i + 1
Loop While Cells(i - 1, 1).Value <> ""
End Sub
Une modification avait été proposée par l'auteur de la macro pour eviter l'erreur lorsque la valeur est trouvée mais ca ne fonctionne pas, du coup seuls les lignes dont la colonne 1 de la feuille 2 est vide sont copiées, pas les autres :
Sub RechercheCopie()
Dim Nom As String
Dim Condition As Boolean
Dim i, j As Integer
Sheets(1).Select
i = 1
Do
Nom = sheets(1).Cells(i, 1).Value
j = 1
Condition = False
Do
If Nom = Sheets(2).Cells(j, 1).Value Then
Sheets(1).Cells(i, 5).Value = Sheets(2).Cells(j, 6).Value
Condition = True
End If
j = j + 1
Loop While (Sheets(2).Cells(j - 1, 1).Value <> "" And Condition = False)
i = i + 1
Loop While Sheets(1).Cells(i - 1, 1).Value <> ""
End Sub
Voila
Je n'y connais absolument rien en visual basic mais j'ai quand même envie de comprendre mais je ne trouve pas de "cours", si vous aviez un début de solution sa m'arrangerai
Merci beaucoup