[Résolu] Macro à modifier

  • Initiateur de la discussion Initiateur de la discussion klorane
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

klorane

XLDnaute Occasionnel
Bonsoir le forum,

voilà j'ai une macro qui quand on la lance me "nettoie" des références. Pb : Elle nettoie un peu trop.

Cette macro retire tout se qui se trouve avant un "-" alors qu il faudrait qu'elle ne retire que le préfixe situé en colonne C et le "-" qui suit juste après et c'est tout.

(Voir fichier joint.)

En cliquant sur le bouton : résultat de la macro en colonne K.
En colonne L le resultat auquel il faudrait arriver.
La différence est aux lignes 12 et 13 car LBP n'est pas en colonne C. Donc il ne faut pas qu'il soit supprimé par la macro.

Merci de votre aide

Klorane
 

Pièces jointes

Dernière édition:
Re : Macro à modifier

Bonsoir klorane, le Forum,

à mettre dans un bouton:
Code:
Sub Bouton2_Clic()
Dim c As Range
Drl = Range("D65500").End(xlUp).Row

For Each c In Range("D2:D" & Drl)
    a = Len(c.Offset(, -1))
    c.Value = Mid(c.Value, a + 2, Len(c.Value) - a)
Next c
End Sub

EDIT: désolé je revois cela 😱

Bonsoir paf 🙂

@+ 😎
 
Dernière édition:
Re : Macro à modifier

Re bonsoir,

Ze bon code:
Code:
Sub Bouton2_Clic()
Dim c As Range
Drl = Range("D65500").End(xlUp).Row

For Each c In Range("D2:D" & Drl)
    If c.Offset(, -1) <> "" Then
        a = Len(c.Offset(, -1))
        c.Value = Mid(c.Value, a + 2, Len(c.Value) - a)
    End If
Next c
End Sub

Désolé 😛

@+ 😎
 
Re : Macro à modifier

Bonsoir Paf, xhudi69 et les visiteurs,

j'ai testé vos lignes.
Pour l'exemple ça fonctionne mais si par exemple je change le préfixe en colonne C (en mettant E par exemple en D2,D3,D4) il continue à enlever le préfixe qui n'est pas identique en C.

La macro me supprime "D-" en D2, D3, D4 alors que "D-" ne devrait pas etre supprimé car "E-" est le préfixe à supprimer.

J'ai remis le fichier joint pour comprendre.

Klorane
 

Pièces jointes

Re : Macro à modifier

Re,

un code qui répond ( en principe ) à la demande

Code:
Sub  klorane()
Dim DerLig As Long, i As Long
DerLig = Range("D" & Rows.Count).End(xlUp).Row

For i = 2 To DerLig
    If Cells(i, 3) <> "" Then
        If Cells(i, 3) = Left(Cells(i, 4), Len(Cells(i, 3))) Then
            Cells(i, 6) = Right(Cells(i, 4), Len(Cells(i, 4)) - (Len(Cells(i, 3)) + 1))
        Else
            Cells(i, 6) = Cells(i, 4)
        End If
    Else
        Cells(i, 6) = Cells(i, 4)
    End If
Next

End Sub

A+
 
Re : [Résolu] Macro à modifier

Bonsoir à tous

Une formule pouvait suffire 😉
mais puisque VBA demandé, alors
Code:
Sub a()
'adapter la formule selon la colonne à traiter
Dim p As Range, f$
f = "=IFERROR(MID(RC[-2],FIND(""-"",RC[-2])+1,9^9),RC[-2])"
    With Range("A1", Range("A" & Rows.Count).End(xlUp)).Offset(, 2)
        .FormulaR1C1 = f: .Value = .Value
    End With
End Sub

PS: La formule en question:
Code:
=SIERREUR(STXT(A1;TROUVE("-";A1)+1;9^9);A1)
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
325
Réponses
7
Affichages
832
  • Question Question
Microsoft 365 Macro de recherche
Réponses
20
Affichages
3 K
Réponses
2
Affichages
1 K
Réponses
3
Affichages
655
Retour