Copie simultanée d'une ligne à plusieurs endroits selon critère

  • Initiateur de la discussion Initiateur de la discussion KarlK
  • Date de début Date de début

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 !

K

KarlK

Guest
Bonjour,

Je vous présente mon problème. J'ai une feuille excel contenant de nombreux produits selon les revendeurs.

J'ai cela :

Revendeur 1
Produit A
Produit B
Produit C

Revendeur 2
Produit A
Produit B
Produit C


Est il possible, si je rajoute un produit D au revendeur 1 que cette ligne soit recopiée automatiquement pour le revendeur 2, 3, etc au même emplacement, c'est à dire après le produit C.

De même si je rajoute un produit après le A, il faudrait que celui-ci soit recopié de la même façon pour chaque revendeurs, après le A.

Je n'arrive pas à voir si cela est réalisable avec une macro et si oui comment ?

Merci pour votre aide !
 
Re : Copie simultanée d'une ligne à plusieurs endroits selon critère

Salut,

C'est faissable par macro, par contre pour éviter d'avoir à adapter plusieurs fois le code, ce serait préférable que tu nous mettes en pièce jointe un exemple de la structure de ton fichier...

@+
 
Re : Copie simultanée d'une ligne à plusieurs endroits selon critère

Bonjour



Pour la première partie de ta question

Code:
Sub ajout_produit()
Dim x
x = InputBox("Ajouter un produit, svp")
    With Range("A1:A" & [A65536].End(xlUp).Row).SpecialCells(xlCellTypeBlanks)
        .Insert Shift:=xlDown
        .Offset(-1, 0) = x
End With
Cells([A65536].End(xlUp).Row+1, 1) = x
End Sub
 
Dernière édition:
Re : Copie simultanée d'une ligne à plusieurs endroits selon critère

Merci pour ce début d'aide. J'ai mis en pièce jointe la structure de mon fichier.

Bien sur, un revendeur peut avoir plus de produits qu'un autre, pas les mêmes etc.
 

Pièces jointes

Re : Copie simultanée d'une ligne à plusieurs endroits selon critère

re,

J'avais bien une idée de fichier à te présenter, mais il y a un problème que je vois pas trop comment résoudre
Par exemple, si pour ton revendeur 1, tu ajoutes le produit 5 entre le produit 1 et le produit 2 et que ton revendeur 3 n'a aucun de ces deux produits, tu le places ou ton produit 5 ???

Suivant ta réponse, je pourrais ou non te proposer une solution...

@+
 
Re : Copie simultanée d'une ligne à plusieurs endroits selon critère

Bonjour à tous

Un exemple qui semble fonctionner :

Code:
Sub test()
    Dim ch$, L%
    
    ch = Cells(2, 1)
    
    For L = 3 To [A65536].End(xlUp).Row + 2 'NB_Revendeurs
    
        If Cells(L, 1) <> ch Then
        
            With Cells(L, 1)
                .Insert Shift:=xlDown
                .Offset(-1, 0) = ch
            End With
            
            Rows(L).RowHeight = 18
            
            Cells(L, 2) = "Nouveau produit"
            ch = Cells(L + 1, 1)
            
        End If
        
    Next

End Sub

a+ et merci à tous
 
Re : Copie simultanée d'une ligne à plusieurs endroits selon critère

Porcinet82, c'est bien là le problème. Quoi que, ce cas se présentera très rarement je pense et est négligeable. Donc si tu as une idée ne prenant pas en compte cette situation, je suis preneur 🙂

Soenda: Pourrais tu m'expliquer le fonctionnement de ta macro ?


Merci encore pour votre aide.
 
Re : Copie simultanée d'une ligne à plusieurs endroits selon critère

Voici le code révisé, testé et commenté

Code:
Sub test()
    Dim ch$, L%, x$
    
    x = InputBox("Entrez un nouveau produit, svp")
    
    ch = Cells(1, 1)    'nom du premier revendeur
    
    For L = 2 To [A65536].End(xlUp).Row + 4 ' 4 est le NB_Revendeurs (testés)
        
        If Cells(L, 1) <> ch Then
        
            Rows(L).Insert Shift:=xlDown    'insertion d'une ligne
            
            Rows(L).RowHeight = 18  ' mise en forme hauteur de ligne
            
            Cells(L, 1) = ch    ' nom du revendeur en cours
            Cells(L, 2) = x     ' nom du produit
            
            ' sauvegarde du nom du revendeur en cours pour comparaison avec le suivant
            ch = Cells(L + 1, 1)
            
        End If
    Next
End Sub

Désolé pour le bug de la version précédente.

A+
 
Re : Copie simultanée d'une ligne à plusieurs endroits selon critère

Merci beaucoup Soenda et Porcinet.

Porcinet, une dernière petite chose, est il possible en plus du nom de produit de rajouter toutes les autres données ? Barre code, Dimensions, etc ?

Que faudrait il modifier dans le userform pour cela ?

Merci encore !
 
Re : Copie simultanée d'une ligne à plusieurs endroits selon critère

re,

C'est tout a fait possible. Je te laisse essayer de faire la modif par toi meme pour ce qui est de rajouter les textbox sur le usf.
Si tu galère pour adapter le code, revient avec ce que tu as fait.

@+
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
1
Affichages
712
  • Question Question
Microsoft 365 tarif maj auto
Réponses
7
Affichages
740
Retour