Macro dupliquant une ligne si une cellule contient tel caractère

Résolu/Fermé
dhaze Messages postés 109 Date d'inscription mardi 27 septembre 2011 Statut Membre Dernière intervention 6 février 2020 - 4 sept. 2014 à 16:25
dhaze Messages postés 109 Date d'inscription mardi 27 septembre 2011 Statut Membre Dernière intervention 6 février 2020 - 9 févr. 2015 à 17:44
Bonjour,

Je reviens vers vous pour un problème dont je ne maitrise pas du tout la résolution !

Il s'agit de créer un script VBA qui effectuerait l'action suivante sur la même feuille :

Partir de la ligne 2
Si en A2 figure le mot "MOT_1" ajouter au mot de B2 le suffixe "_A"
Puis copier toute la ligne et l'insérer en dessous
Et ajouter au mot de B3 de la ligne collée le suffixe "_B"
Puis rechercher ainsi de suite tous les mots "MOT_1" dans les lignes suivantes de la colonne A et répéter l'opération...

Pour les suffixes, je ne sais pas ce qui est le plus logique, ou simple
Copier la ligne avant de la dupliquer puis renommer B2
Ou remplacer le "_A" de B3 par "_B" ?


Merci
Lo.

17 réponses

via55 Messages postés 14403 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 24 avril 2024 2 703
Modifié par pijaku le 18/09/2014 à 14:32
Bonsoir dhaze,

Essaie cette macro

Sub ajout()
Dim DernLigne As Long
DernLigne = Range("A" & Rows.Count).End(xlUp).Row
For n = DernLigne To 2 Step -1
If Range("A" & n) = "MOT_1" Then
    Rows(n & ":" & n).Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.Insert Shift:=xlDown
    Range("B" & n).Select
    ActiveCell.FormulaR1C1 = Range("B" & n).Value & "_A"
     Range("B" & n + 1).Select
    ActiveCell.FormulaR1C1 = Range("B" & n + 1).Value & "_B"
    End If
    Next
End Sub


Cdlmnt

"L'imagination est plus importante que le savoir." A. Einstein
0
dhaze Messages postés 109 Date d'inscription mardi 27 septembre 2011 Statut Membre Dernière intervention 6 février 2020
17 sept. 2014 à 17:35
J'étais absente la semaine dernière, mais quelle bonne surprise pour mon retour, cela fonctionne parfaitement. Je te remercie. Je vais gagner un temps fou !

Je sais pas si c'est abuser (pour ma culture générale), pourrais-je savoir en langage courant ce que fait chaque ligne ?

Tu n'es pas obligé d'accepter ;-)

Merci encore
0