Menu

Comparer une sequence de deux cellules [Résolu]

dhaze 98 Messages postés mardi 27 septembre 2011Date d'inscription 5 février 2018 Dernière intervention - 30 janv. 2018 à 17:00 - Dernière réponse : dhaze 98 Messages postés mardi 27 septembre 2011Date d'inscription 5 février 2018 Dernière intervention
- 5 févr. 2018 à 15:59
Bonjour,

J'ai fait une petite macro que fonctionne très bien
mais que quand les valeurs sont strictement identiques.

Je suis très mauvaise sur les fonctions de séquençage
et je voudrais modifier cette macro comme suit...

Merci aux experts de ces méthodes obscures pour leur aide

Lo.

Sub Saut_de_ligne_quand_double()
    
    Dim Numération As Integer, Ligne As Integer
    
    Numération = 2
    
    Do While Cells(Numération, "C") <> ""
    
        If Cells(Numération + 1, "C").Value = Cells(Numération, "B").Value Then ' <--- lignes à comparer
            
                '   Comparer les cellules des colonnes C et B
                '   en utilisant la deuxième séquence de la valeur des cellules
                '   dans C le séparateur des séquence est "-" et dans B le séparateur et "_"
                '   Cette "égalité" serait vraie ABC-592-H23F-123 = DEF_592_I45G_789

            Ligne = Cells(Numération + 1, "A").Select ' <***
            Selection.Insert Shift:=xlDown
            Selection.Value = "#"
            
            Ligne = Cells(Numération + 1, "B").Select ' <*** Comment grouper ces 2 actions en 1 ?
            Selection.Insert Shift:=xlDown
            Selection.Value = "#"
            
            Numération = Numération + 1
            
        End If
        
        Numération = Numération + 1
        
    Loop
    
    Numération = Empty
    Ligne = Empty
    
End Sub
Afficher la suite 

4 réponses

Répondre au sujet
dhaze 98 Messages postés mardi 27 septembre 2011Date d'inscription 5 février 2018 Dernière intervention - Modifié par dhaze le 30/01/2018 à 19:07
0
Utile
Ça ne fonctionne pas... Mais suis-je dans la bonne direction ?

If Split(Cells(Numération + 1, "C").Value, "-")(2) = Split(Cells(Numération, "B").Value, "_")(2) Then
Commenter la réponse de dhaze
ccm81 8247 Messages postés lundi 18 octobre 2010Date d'inscription 13 février 2018 Dernière intervention - 30 janv. 2018 à 19:15
0
Utile
1
tu y es presque
split produit un tableau à base 0
donc split(...)(1) devrait aller

Cdlmnt
dhaze 98 Messages postés mardi 27 septembre 2011Date d'inscription 5 février 2018 Dernière intervention - 5 févr. 2018 à 14:32
Merci beaucoup !
Je ne voyais pas le décalage à cause d'une erreur 9 que j'ai eu du mal à corriger...

Bonne journée
Lo.
Commenter la réponse de ccm81
dhaze 98 Messages postés mardi 27 septembre 2011Date d'inscription 5 février 2018 Dernière intervention - Modifié par dhaze le 5/02/2018 à 16:05
0
Utile
Voici pour info le code final :

Sub Saut_de_ligne_quand_double()

    ActiveSheet.Range("C:C").Replace "-", "_" ' <-- Correctif erreur 9
    'Les cellules de cette colonne peuvent contenir l'un ou l'autre des ces deux signes

    Dim Numération As Integer, Ligne As Integer
    
    Numération = 2
    
    Do While Cells(Numération + 1, "C") <> ""
        
        If Split(Cells(Numération, "C").Value, "_")(1) = Split(Cells(Numération + 1, "C").Value, "_")(1) Then

            Ligne = Range(Cells(Numération + 1, "A"), Cells(Numération + 1, "B")).Select
            Selection.Insert Shift:=xlDown
            Selection.Value = "#"

        End If

    Numération = Numération + 1

    Loop

End Sub


Problème résolu, merci
Lo.
Commenter la réponse de dhaze