Collage entre 2 feuilles en fonction d'une valeur commune

Bonjour à tous,

Voici mon problème:

J'aimerai pouvoir coller des valeurs d'une feuilles à l'autre à une condition : qu'une valeur commune soit vérifiée.

En fait les tableaux des deux feuilles contiennent des valeurs identiques en colonne C (pour les deux feuilles): j'aimerai que ma macro récupère les valeurs des colonnes I et J de la feuille 2 ("Recap2") et les colle dans la feuille 1 ("Dates") et dans les bonnes cellules (en fonction du critère commun en colonne C).

Voici un exemple de fichier avec mon début de macro permettant de comparer les valeurs des deux feuilles. Il me manque un bout de code pour coller les valeurs au bons endroit dans la feuille 1 ("Dates").

J'espère avoir été assez clair dans la description de mon problème..

Merci à vous pour votre aide

JB33

23exemple-forum.xlsm (18.47 Ko)

Bonjour,

une macro est elle indispensable ?

en I13 on peut mettre:

=INDEX(Recap2!$I2:$I5;EQUIV($C13;Recap2!$C2:$C5;0))

P.

bonjour,

Voici une macro qui fait ce que tu demandes.

Sub galopin()
Dim i&, j&, iA&, iR&, Y As Boolean
Dim WsA As Worksheet, WsB As Worksheet
Dim a, aa, b, bb
Set WsA = Sheets("Dates")
Set WsB = Sheets("Recap2")
iA = WsA.Cells(Rows.Count, 1).End(xlUp).Row
iR = WsB.Cells(Rows.Count, 1).End(xlUp).Row
Application.ScreenUpdating = False
a = WsA.Range("C13:C" & iA)
b = WsB.Range("C2:C" & iR)
aa = UBound(a)
bb = UBound(b)
   For i = 1 To aa
      For j = 1 To bb
           If a(i, 1) = b(j, 1) Then
              WsA.Cells(i + 12, 9) = WsB.Cells(j + 1, 9)
              WsA.Cells(i + 12, 10) = WsB.Cells(j + 1, 10)
              Y = True
              Exit For
           End If
      Next j
      If Y Then Y = False
   Next i
End Sub

A+

Bonjour Patrick,

Oui je préfère car cette macro est associée à d'autres macros que je n'ai pas mis dans le fichier exemple !

Merci quand même pour ton aide rapide !!

Bonjour Galopin,

Ta macro fonctionne très bien !! Rapide et efficace, Super!!

Merci beaucoup !!

JB33

Bonjour Galopin,

Je reviens vers toi car il semble qu'il y ai un soucis dans le code.

Lorsque je dispose de toutes les données dans les deux feuilles, cela fonctionne bien, par contre lorsqu'il y a qu'une partie des données, le code bloque et ça me met: Erreur d'exécution '13': Incompatibilité de type.

En gros lorsqu'il y a le même nombre de lignes dans les deux feuilles ça marche, mais lorsque certaines lignes sont présentes dans "Recap2" (mais pas toutes), le code ne transfert pas les données qu'il peut transférer, il bloque car il ne trouve pas l'ensemble des lignes.

Sais-tu d'où cela peut-il venir ?

Merci!!

JB33

Bonsoir,

Désolé une macro est une pièce d'horlogerie : Avec une partie des données, je ne peux te donner qu'une partie du code...

Il faudrait voir ou ça bloque (quelle ligne du code , l'état des variables à ce moment là...)

On appelle ça du débogage. Mais on ne peux faire ça que dans des conditions réelles ; Pas dans une boule de cristal !

A+

Oui je me doute..!

J'ai trouvé d'où venait l'erreur , merci quand même, bonne continuation!!

JB33

Rechercher des sujets similaires à "collage entre feuilles fonction valeur commune"