Exclure deux lignes quand la seconde commence par #

Résolu/Fermé
dhaze Messages postés 109 Date d'inscription mardi 27 septembre 2011 Statut Membre Dernière intervention 6 février 2020 - 27 févr. 2017 à 19:22
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 - 1 mars 2017 à 16:37
Bonjour à tous,

Cette macro duplique toutes les lignes.
Au début de la seconde ligne elle ajoute, entre autre, un # dans la colonne A.

Le but est de créer une liste de documents sonores doubles-faces à partir d'une liste de simples-faces.

Mais voilà, tout serait trop simple...

Il arrive qu'il existe déjà des doubles-faces dans une liste.

Je voudrais donc exclure de ma boucle ces deux lignes quand la seconde commence par un #


    Dim Collone_Repertoire, Colone_Titre, Collone_Face, Collone_Nom As Integer
    Dim Derniere_Ligne As Long

        Collone_Repertoire = Rows(1).Find("Repertoire", , , , xlByRows, xlPrevious).Column
        Colone_Titre = Rows(1).Find("Titre", , , , xlByRows, xlPrevious).Column
        Collone_Face = Rows(1).Find("Face", , , , xlByRows, xlPrevious).Column
        Collone_Nom = Rows(1).Find("Nom de fichier", , , , xlByRows, xlPrevious).Column
        Derniere_Ligne = Columns(Collone_Repertoire).Find("*", , , , xlByColumns, xlPrevious).Row
    
    For n = Derniere_Ligne To 2 Step -1
        If Cells(n, Collone_Repertoire) <> "#" Then
            Rows(n & ":" & n).Select
            Application.CutCopyMode = False
            Selection.Copy
            Selection.Insert Shift:=xlDown
            Range("A" & n + 1 & ":G" & n + 1).Select
            Selection.ClearContents
            Range("A" & n + 1) = "#"
            Range("F" & n + 1) = "#"
            Cells(n, Collone_Nom).Select
            ActiveCell.FormulaR1C1 = Cells(n, Collone_Repertoire).Value & "_A"
            Cells(n + 1, Collone_Nom).Select
            ActiveCell.FormulaR1C1 = Cells(n, Collone_Repertoire).Value & "_B"
            Cells(n, Collone_Face) = "A"
            Cells(n + 1, Collone_Face) = "B"
            Cells(n + 1, Colone_Titre).Interior.color = 255
        End If
    Next


Merci pour vos lumières...

Lo.
A voir également:

3 réponses

JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
27 févr. 2017 à 21:29
Bonsoir,

sans fichier pour tester, et en considérant que ta procédure fonctionne correctement, pour ajouter la gestion des # existant dans ta base, je tenterais simplement d’ajouter un Else à ton If pour décrémenter ton indice de boucle n=n-1.

cordialement
0
dhaze Messages postés 109 Date d'inscription mardi 27 septembre 2011 Statut Membre Dernière intervention 6 février 2020
1 mars 2017 à 12:24
Bonjour JvDo,

Merci pour ta réponse.
Effectivement ce serait plus simple avec un fichier, que voici :

https://www.cjoint.com/c/GCbltzuJ4nX

J'ai de grosses lacunes dans la rédaction des actions à exécuter dans une boucle, je bute souvent là-dessus !

Lo.
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
1 mars 2017 à 16:37
Bonjour,

C'est bien ça, tu fais exactement ce que j'ai dit dans ma proposition.

Cordialement

PS : tes noms de variables et de feuilles sont vrémant mal aurtografiet
0