Bonjour a tous suite a une aide que j'ai eu sur ce forum on a pue crée un code VBA permettant de récupérer les valeurs d'une feuille et de la transmettre a une autre feuille seulement si "le nom de la ligne" et identique.
Pour simplifier mon explication:
Si A1 dans feuille 1 et égale a A32 dans feuille 2 alors les données de la feuille 1 sont transmise sur la ligne 32 de la feuille 2.
Afin de simplifier mon classeur excel je souhaiterais que ce code synchronise les cellules a leur bon emplacement dans la feuille 2.
Par exemple dans la feuille 1 je souhaiterais que la cellule B45 soit envoyer sur la cellule BD8 de la feuille 2.
Un classeur exemple du résultat souhaité avec le code et des explication
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Sub synctest() Dim F1 As Worksheet, F2 As Worksheet Dim DerLig_f2 As Long, i As Long Dim ID As String Dim x As Object Application.ScreenUpdating = False 'Evite les rafraîchissements de l'écran et augmente la vitesse d'exécution Set F1 = Sheets("Feuil1") 'on attribue la variable f1 à la feuille 1 Set F2 = Sheets("Feuil1") 'on attribue la variable f2 à la feuille 2 DerLig_f2 = F2.Range("B" & Rows.Count).End(xlUp).Row 'Dernière ligne de la feuille 2 DerCol_f2 = 17 'Dernière colonne de la feuille 2 For i = 11 To DerLig_f2 ' la variable i prend successivement la valeur de la ligne 11 à la dernière ligne de la feuille 2 ID = F2.Cells(i, "B") 'on récupère le code identificateur Set x = F1.Columns(11).Find(ID, LookIn:=xlValues, lookat:=xlWhole) 'on recherche l'ID dans la colonne 2 (la B) de la feuille 1 If Not x Is Nothing Then 'si x n'est pas rien alors: 'pour chaque ligne i testée, on copie la plage qui va de la colonne B à la dernière colonne de la feuille 2 destination feuille 1 colonne B F2.Range(F2.Cells(i, "C"), F2.Cells(i, DerCol_f2)).Copy Destination:=F1.Cells(x.Row, "L") End If Next i 'on passe à la valeur suivante de i End Sub
forum.xlsm
Partager