XL 2016 Copie d'une cellule si le nom est identique

marco3866

XLDnaute Nouveau
BonjourJ'ai un document excel

A2 (nom) M2 (vide)

J'ai mis plus bas

A 1035 (nom identique que A2) M1035 (Texte que je voudrais coller sur M2)



Il y a a peu pres 1000 references j'espere avoir ete clair merci pour votre aide !


Merci d'avance
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Marco,
Sans fichier test, on ne peut que supputer.
Essayez cette PJ avec :
VB:
Sub Remplit()
Dim tablo, ValA, A%, M%, DL%, L1%, L2%
A = 1: M = 13 ' pour simplifier la lecture
Application.ScreenUpdating = False
DL = Range("A65500").End(xlUp).Row
tablo = Range("A1:M" & DL)
For L1 = 1 To UBound(tablo)
    If tablo(L1, M) = "" Then
        ValA = tablo(L1, A)
        For L2 = 1 To UBound(tablo)
            If tablo(L2, A) = ValA And tablo(L2, M) <> "" Then
                Cells(L1, "M") = Cells(L2, "M")
                Exit For
            End If
        Next L2
    End If
Next L1
End Sub

Le bouton gris ne sert qu'à remplir la matrice pour tester la fonction qui est activée par appui sur le bouton orange.
 

Pièces jointes

  • Marco.xlsm
    18.5 KB · Affichages: 17

marco3866

XLDnaute Nouveau
Bonjour Merci pour votre reponse pour donner un exemple dans la colone 2 M N O sont deja rempli

je dois faire la meme chose pour les autres M N O 3 4 5 6 7 8 9 10 11

les informations sont bonne a partir de la ligne 17

Merci
 

Pièces jointes

  • test UPDATE.xlsx
    57.4 KB · Affichages: 6

marco3866

XLDnaute Nouveau
Oui merci ca a marche sauf pour la colonne O qui ne se complete j'ai essaye de rajouter comme suis mais ca ne marche pas

Sub Remplit()
Dim tablo, ValA, A%, M%, N%, DL%, L1%, L2%, Nb%
A = 1: M = 13: N = 14: O = 15: Nb = 0 ' pour simplifier la lecture
Application.ScreenUpdating = False
DL = Range("A65500").End(xlUp).Row
tablo = Range("A1:N" & DL)
For L1 = 1 To UBound(tablo)
If tablo(L1, M) = "" Then
ValA = tablo(L1, A)
For L2 = 1 To UBound(tablo)
If tablo(L2, A) = ValA And tablo(L2, M) <> "" Then
Cells(L1, "M") = Cells(L2, "M")
Cells(L1, "N") = Cells(L2, "N")
Cells(L1, "O") = Cells(L2, "O")
Nb = Nb + 1
Exit For
End If
Next L2
End If
Next L1
MsgBox Nb & " remplacements effectués."
End Sub
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Hihihi ! La modif est bonne.
Cependant comme j'avais déjà exécuter la macro et que les cellules M2 était non vide, l'update sur O ne se fait pas.
En PJ j'ai rapatrié les colonnes MNO du fichier original et ça marche. ;)
Et j'ai exécuté la macro sans problème.
 

Pièces jointes

  • test UPDATE2.xlsm
    70.2 KB · Affichages: 4

marco3866

XLDnaute Nouveau
Hihihi ! La modif est bonne.
Cependant comme j'avais déjà exécuter la macro et que les cellules M2 était non vide, l'update sur O ne se fait pas.
En PJ j'ai rapatrié les colonnes MNO du fichier original et ça marche. ;)
Et j'ai exécuté la macro sans problème.
Un grand merci ça marche parfaitement j'ai rajouter d'autre données et tout est rempli par magie ! Merci de m'avoir fait gagner quelques 100 heures de travail :)
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 977
dernier inscrit
Hermet