Comparer une sequence de deux cellules

Résolu
dhaze Messages postés 113 Date d'inscription   Statut Membre Dernière intervention   -  
dhaze Messages postés 113 Date d'inscription   Statut Membre Dernière intervention   -
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

3 réponses

  1. dhaze Messages postés 113 Date d'inscription   Statut Membre Dernière intervention  
     
    Ç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
    0
  2. ccm81 Messages postés 11033 Statut Membre 2 434
     
    tu y es presque
    split produit un tableau à base 0
    donc split(...)(1) devrait aller

    Cdlmnt
    0
    1. dhaze Messages postés 113 Date d'inscription   Statut Membre Dernière intervention  
       
      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.
      0
  3. dhaze Messages postés 113 Date d'inscription   Statut Membre Dernière intervention  
     
    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.
    0