Insérer une ligne à partir d'une condition et y coller la ligne d'avant
Bonjour à tous,
Je vous sollicite car après une après midi de recherche sur tous les forums disponibles, je ne parviens pas à trouver ma réponse... malgré la multitude de sujets avec des problèmes quasi similaires déjà résolu, je ne parviens pas à bien adapter les solutions proposées je crois.
Voici mon problème :
J'ai un fichier client, dans lequel je recherche dans ma colonne "LIBELLE PRODUIT" (colonne J de mon fichier) toutes les lignes où sont mentionnées le mot "Spring Kit".
En dessous de chacune de ces lignes avec cette mention, je souhaite insérer une nouvelle ligne.
Ensuite je souhaite remplir cette nouvelle ligne créée, en copiant collant les colonnes B à I et K à S de la ligne précédente, et la colonne J avec le mot "Daisy".
J'ai réussi la première étape qui consiste à insérer un ligne vide en dessous de chacune des lignes avec la mention "Spring Kit" . Voici le code que j'utilise pour l'insertion :
Sub Sping_Kit()
End Sub
Mais je ne parviens pas à faire la suite....
J'ai essayé avec le code suivant pour intégrer le copier/coller entier de la ligne mais déjà là je bloque et ça ne fonctionne pas :
Sub Sping_Kit()
End Sub
Pour que vous puissiez comprendre mon charabia, je vous joins le fichier sur lequel je travaille et dans lequel il y le début de ma macro.
Merci pour votre aide et surtout bon courage à tous pour la suite du confinement !
Salut Savon77
J'ai renommé ta variable "Ligne" en "Cel" car c'est une cellule (Range) que tu déclare
Voici le code cherché
' Changement Spring Kit Macro
Sub Sping_Kit()
Dim Cel As Range
Sheets("Tableau_Valeur").Select
' Définir la plage à traiter
Set Plage = Range("LIBELLE_PRODUIT")
' Pour chque cellule de la plage
For Each Cel In Plage.Rows
If Cel = "Spring Kit" Then
Cel.Offset(1, 0).EntireRow.Insert Shift:=xlDown
' copiant collant les colonnes B à I et K à S
Cel.EntireRow.Copy Destination:=Cel.Offset(1, 0).EntireRow
' Mot : Daisy
Cel.Offset(1, 0).Value = "Daisy"
End If
Next
End SubATTENTION !
Si tu fais un 2ème passage avec le code, cela te créeras de nouveau une ligne
A+
Salut BrunoM45,
Merciiiiiiiiiiiii ! Quelle rapidité en plus tu es parfait !!
Une petite question pour être sûre de bien comprendre ton code (et éviter de venir vous embêter sur ce forum à chaque macro héhé). Je ne suis pas sûre de bien comprendre comment marche ta commande pour copier coller les colonnes B à I puis K à S, car tu fais un copié coller entierrow.
Est-ce je dis un bêtise si j’interprète ainsi :
- tu copie la ligne entière que tu colles en décalant sur la ligne du dessous nouvellement créée
- puis, comme tu es toujours sur la cellule (ligne,J), tu descend d'une cellule avec le offset et tu inscrit Daisy à la place du "sping kit" précédemment collé.
C'est bien cela ?
En tout cas encore mille mercis pour ton aide très efficace !
Bonne journée