Microsoft 365 Macro copier/coller

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

SimonAbrhm

XLDnaute Nouveau
Bonjour à tous,
Je sollicite votre aide pour la création d'une macro.
Je souhaiterais une macro qui puisse copier/coller le nom du client dans une autre colonne.
Dans un fichier Excel, j'ai des factures (colonne B, cellules en rouge dans le fichier joint) et au-dessus figurent le nom du client, je voudrais que le nom du client apparaisse en face de chaque facture en colonne L (cellules en jaune, colonne L du fichier joint).
Je vous laisse regarder le fichier joint, ça sera plus simple pour comprendre et tout est expliqué.
D'avance merci beaucoup pour votre aide et si ce n'est pas clair, n'hésitez pas.
Cordialement,
Simon
 

Pièces jointes

Solution
Oui, c'est plus clair. C'est exactement le contraire du post #3. 🙂
on peut utiliser les intitulés en colonne A si cellule colonne A = INC ou CM alors le nom du client.

Donc voici la V3, j'y ai rajouté les règles :
VB:
Sub Client()
' Règles :
'   Si ColA= INV ou CM alors Facture
'   Si ColA= INV ou CM et ColA(-1)="" alors NomClient en ColB(-1)
'   Mettre NomClient en ColL devant chaque INV ou CM mais pas si ColA="Customer Totals:"
Application.ScreenUpdating = False
[L:L].Clear
Taille = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To Taille
    If (Range("A" & i) = "INV" Or Range("A" & i) = "CM") And Range("A" & i - 1) = "" Then
        NomClient = Range("B" & i - 1)
    End If
    If (Range("A" & i) = "INV" Or...
Bonjour Simon,
Un essai en PJ.
La macro est simple et facilement modifiable :
VB:
Sub Client()
[L:L].Clear
Taille = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To Taille
    If Range("B" & i).Interior.Color = RGB(255, 0, 0) Then
        If Range("B" & i - 1).Interior.Color <> RGB(255, 0, 0) Then
            NomClient = Range("B" & i - 1)
        End If
        Range("L" & i) = NomClient
        Range("L" & i).Interior.Color = RGB(255, 255, 0)
    End If
Next i
End Sub
 

Pièces jointes

Bonjour Sylvanu,
Merci pour ton aide.
Malheuresement dans mon rapport d'origine, il n'y a pas de couleur. J'ai rajouté des couleurs juste pour illustrer mon problème.
Mais au lieu de la couleur on peut utiliser les intitulés en colonne A si cellule colonne A = INC ou CM alors le nom du client.
Peux-tu faire cela?
Merci pour ton aide
Simon
 
C'est encore plus simple :
VB:
Sub Client()
[L:L].Clear
Taille = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To Taille
    If Range("A" & i) = "INC" Or Range("A" & i) = "CM" Then
        NomClient = Range("B" & i)
    Else
        If Range("A" & i) <> "Customer Totals:" Then
            Range("L" & i) = NomClient
        End If
    End If
Next i
End Sub
cependant il faut respecter les règles :
1- Devant un client, en colonne A, on trouve INC ou CM.
2- A la fin du traitement client on trouve en colonne A : "Customer Totals:"
 

Pièces jointes

Oui, c'est plus clair. C'est exactement le contraire du post #3. 🙂
on peut utiliser les intitulés en colonne A si cellule colonne A = INC ou CM alors le nom du client.

Donc voici la V3, j'y ai rajouté les règles :
VB:
Sub Client()
' Règles :
'   Si ColA= INV ou CM alors Facture
'   Si ColA= INV ou CM et ColA(-1)="" alors NomClient en ColB(-1)
'   Mettre NomClient en ColL devant chaque INV ou CM mais pas si ColA="Customer Totals:"
Application.ScreenUpdating = False
[L:L].Clear
Taille = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To Taille
    If (Range("A" & i) = "INV" Or Range("A" & i) = "CM") And Range("A" & i - 1) = "" Then
        NomClient = Range("B" & i - 1)
    End If
    If (Range("A" & i) = "INV" Or Range("A" & i) = "CM") And Range("A" & i) <> "Customer Totals:" Then
            Range("L" & i) = NomClient
    End If
Next i
End Sub
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
18
Affichages
510
Retour