Copier coller des cellules suites à une recherche

22primes.xlsm (106.98 Ko)

Bonjour,

Je bricole souvent en VBA mais ici je coince. J'ai 2 feuilles dans un même classeur. Sur la première feuille j'ai des numéros de châssis et sur la seconde feuille j'ai des numéros de châssis avec des codes et des sommes. Je voudrais recopier en couleur verte ces codes et ces sommes sur la feuille 1 dans la ligne correspondante au numéro de châssis à partir de la colonne P. Cela me permettra ensuite de comparer les valeurs demandées déjà présentes sur la feuille "Cont-paiement" avec les valeurs reçues écrites en vert.

Voir fichier en annexe.

Voici le début de mon code :

Sub Recap_primes()

Application.ScreenUpdating = False

Sheets("Cont-paiement").Select

Range("T2").Select

For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row

NumChassis = Range("T" & i).Value

If NumChassis <> "" Then

a = Range("T" & i).Address

b = Range(a).Column

c = Range(a).Row

Sheets("donnéesPrime").Select

Set PlageDeChassis = ActiveSheet.Columns(2)

Set chassis = PlageDeChassis.Cells.Find(What:=NumChassis, LookAt:=xlWhole)

If chassis Is Nothing Then

Sheets("Cont-paiement").Select

i = i

Else

x = chassis.Address

y = Range(x).Column

z = Range(x).Row

Cells(z, y).Select

Range(ActiveCell.Offset(0, 1), ActiveCell.Offset(0, 2)).Select

Selection.Copy

Sheets("Cont-paiement").Select

b = Range(a).Column

c = Range(a).Row

Cells(c, b).Select

Range(ActiveCell.Offset(0, 14), ActiveCell.Offset(0, 14)).Select

ActiveSheet.Paste

End If

End If

Next i

Cells.Select

Range("O1").Activate

Selection.Borders(xlDiagonalDown).LineStyle = xlNone

Selection.Borders(xlDiagonalUp).LineStyle = xlNone

With Selection.Borders(xlEdgeLeft)

.LineStyle = xlContinuous

.ColorIndex = 0

.TintAndShade = 0

.Weight = xlThin

End With

End sub

Merci d'avance pour votre aide.

Didier

Bonjour Didier et bienvenue!

J'ignore si tu cherches encore une solution et si tu repasseras par ici, mis ce que tu voudrais faire (si j'ai bien compris!?) ... tu peux le faire avec une simple RECHERCHEV, me semble-t-il, non?

Bonjour Milité.

C'est sympa de t'intéresser à ma question.

Le problème est que le fichier de la feuille 2 est mis à jour chaque semaine et que des valeurs supplémentaires peuvent venir s'ajouter à des données transférer la semaine précédente. C'est la raison pour laquelle je penche plutôt pour une macro qui ajoutera les données à la suite sur la ligne correspondante au numéro de châssis.

Je bloque sur la ligne de commande qui permet de repérer la première cellule vide dans la ligne correspondante au châssis. Je maitrise la commande pour trouver la première cellule vide dans une colonne mais pas dans une ligne.

Merci d'avance pour ton aide.

Bonne journée.

Didier

Didier58 a écrit :

C'est sympa de t'intéresser à ma question.

Je trouvais aussi

Ceci étant, je ne vois pas en quoi le fait que la feuille source soit mise à jour régulièrement est un obstacle à l'utilisation de la fonction RECHERCHEV: tu peux sélectionner des colonnes entières pour l'argument Table_Matrice, sans que le temps de calcul soit impacté de manière significative; tu peux aussi convertir la plage source en Tableau. De cette manière, la taille du tableau s'adaptera automatiquement!

Maintenant, il est possible que je n'aie pas compris: il ne me semble pas que j'obtienne les mêmes résultats que toi en feuille 1 ??

[Edit:] je viens de relire ton premier post ... les divergences de résultats s'expliquent mieux

Par contre, il y a des différences de formats et d'arrondis, d'une feuille à l'autre!?

Rechercher des sujets similaires à "copier coller suites recherche"