VBA correspondance de 2 colones avec des cellules vides

Bonjour à tous,

j'ai une macro pour chercher une valeurs dans une colonne et rapporter la ligne correspondante

Option Explicit

Sub Remplir()

Dim i As Integer

For i = 1 To 50

Dim i2 As Integer

For i2 = 2 To 98

If Feuil1.Cells(i, "A") = Feuil2.Cells(i2, "A") Then

Dim y As Integer

For y = 2 To 92

Feuil1.Cells(i, y) = Feuil2.Cells(i2, y)

Next

End If

Next

Next

Je voudrais maintenant pouvoir faire exactement la même chose mais en comparant les valeurs de 2 colonnes

Je précise que certaines cellules sont vides.

J'ai tenté ça mais je suis vraiment pas sûr de moi et ça ne fonctionne pas

Option Explicit

Sub Remplir()

Dim i As Integer

For i = A1 To B50

Dim i2 As Integer

For i2 = A1 To B95

If Feuil1.Cells(i, "A") = Feuil2.Cells(i2, "A") And Feuil1.Cells(i, "B") = Feuil2.Cells(i2, "B") Then

Dim y As Integer

For y = 3 To 68

Feuil1.Cells(i, y) = Feuil2.Cells(i2, y)

Next

End If

Je vous remercie d'avance du temps que vous prendrez pour me lire

Bonne soirée

Bonjour

Tu devrais joindre ton fichier, même simplifié...

Bye !

Ci-joint un fichier simplifié

j'aurais du y penser !

Merci

Bonjour Bast34,

Ma présente réponse est d'après ton 1er message.

J'ai réécrit ainsi ton 1er code VBA :

Option Explicit

Sub Remplir()
  Dim i&, i2&, y%
  Worksheets("Feuil1").Select: Application.ScreenUpdating = False
  With Worksheets("Feuil2")
    For i = 1 To 50
      For i2 = 2 To 98
        If Cells(i, "A") = .Cells(i2, "A") Then
          For y = 2 To 92
            Cells(i, y) = .Cells(i2, y)
          Next y
        End If
      Next i2
    Next i
  End With
End Sub

J'ai réécrit ainsi ton 2ème code VBA :

Option Explicit

Sub Remplir()
  Dim i&, i2&, y%
  Worksheets("Feuil1").Select: Application.ScreenUpdating = False
  With Worksheets("Feuil2")
    For i = 1 To 50
      For i2 = 1 To 95
        If Cells(i, "A") = .Cells(i2, "A") And Cells(i, "B") = .Cells(i2, "B") Then
          For y = 3 To 68
            If .Cells(i2, y) <> "" Then Cells(i, y) = .Cells(i2, y)
          Next y
        End If
      Next i2
    Next i
  End With
End Sub

Cordialement,

dhany

Merci 1000 fois Dhanny

Je crois que j'ai réussi à faire fonctionner tout comme il faut

je vérifierai ça demain

Il faut absolument que j'apprenne à m'en sortir avec ces macros.

Merci encore et bonne soirée

Bonjour Bast34,

Merci ... pour tes 1000 remerciements.

Je te retourne ton fichier modifié :

⚠ Tu avais mis ton code VBA dans ThisWorkbook au lieu de le mettre dans Module1 ; j'ai donc créé ce module, puis j'y ai coupé / collé tout ton code VBA ; quand on met dans ThisWorkbook un code VBA, c'est pour des procédures événementielles du classeur, ce qui n'est pas le cas ici.

Pour la prochaine fois, voici le moyen le plus simple d'insérer un module (à partir de la fenêtre Microsoft Visual Basic) : Alt i m

J'ai un peu amélioré tes 3 macros, mais difficile d'en faire davantage sans savoir ce que tu veux vraiment faire ; d'autant plus que les données que tu as mises ne sont pas assez représentatives, et pas assez nombreuses ; exemple : ton code utilise une ligne 105 qui est vide alors qu'elle devrait contenir des données !

Sur "Feuil2", lignes occupées : de 1 à 95 ; dessous : plein de lignes vides ... et ta ligne 250 est occupée.

un oubli ? résultat erroné de l'exécution d'un code VBA ?

Chacune des 3 macros est appelée par un bouton placé sur "Feuil1" : ok ; quand ta macro Remplir() appelle ta macro Colorier() : c'est tout à fait possible et correct, mais je ne sais pas si c'est vraiment ce que tu veux ou pas : peut-être que tu as écrit cet appel par mégarde ? ou juste pour un essai temporaire et tu as oublié de l'enlever ensuite ? mais à laisser si tu en as besoin !

Sur "Feuil1" : clique sur le bouton « remplir » ; clique ensuite sur le bouton « reset » : c'est ok ? à confirmer ; sinon : ça sera à adapter.

Un clic sur le bouton « colorier » ne fait rien car les données ne sont pas en adéquation avec ce qu'il faudrait !

Cordialement,

dhany

Merci encore je vais encore faire des essais mais je crois que ça fonctionne,

Effectivement le fichier transmis était peut être trop simplifié ...

Merci

et bonne journée

Rechercher des sujets similaires à "vba correspondance colones vides"