Langage VBA - Fonction OU (OR)

Bonjour,

Je souhaite transformer une donnée dans une cellule écrite sous la forme D2_R1_P en 3 colonnes contenant respectivement D2 R1 et P.

Pour cela j'utilise la fonctionnalité convertir d'excel et délimiter par "_".

J'ai automatisé cette action par MACRO dont voici un extrait :

Sub ConvertirZone()

      nbl = Cells(Cells.Rows.Count, "B").End(xlUp).Row 'défini variable qui a lla taille de la colonne B'
      Range("B7:B" & nbl).Select 'selection de la cellule B7 à Bnbl'

            Selection.TextToColumns Destination:=Range("R7"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
        :="_", FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True  'conversion dans les colonnes à partir du rang R7'
 End Sub

Le problème : Parfois, la donné que je récupère est sous la forme D2-R1-P (avec le tiret du 6)

Je souhaite donc dans ma macro intégrer que la donnée a convertir est délimitée par "_" ou "-" ...

Mais avec un simple ajout de "_" or "-" ne fonctionne pas.

Avez vous une idée? D'avance merci

Cordialement,

Ramplace tes - par des _

Merci pour la réponse, mais si c'était aussi simple, je ne me prendrai pas la tête ... ^^

Le problème est que je récupère des données en format excel d'un logiciel que je traite ensuite.

Je me suis rendu compte que le logiciel a une erreur et que il me sort :

D2_R1_P ou D2_R1-P ou D2-R1-P ou D2-R1_P

Je ne peux pas modifier cela car c'est une extraction et qu'il y a environ 50 000 données...

A moins que tu connaisses un moyen d'ajouter dans ma macro une fonction qui remplace - par _ ...??

clique sur le petit rectangle entre ta colonne A et ta ligne 1

Ctrl F

onglet Remplacer

Rechercher : -

Remplacer par : _

Remplacer tout

et la même solution en VBA

Cells.Replace what:="-", replacement:="_"

Bonjour

Pourquoi ne pas inscrire le remplacement dans la macro ?

A tester

Sub ConvertirZone()
Dim NbL As Long

  NbL = Cells(Cells.Rows.Count, "B").End(xlUp).Row    'défini variable qui a lla taille de la colonne B'
  With Range("B7:B" & NbL)          ' cellule B7 à Bnbl
    ' Remplacement des "-" par des "_"
    .Replace what:="-", replacement:="_", lookat:=xlPart
    ' 'conversion dans les colonnes à partir du rang R7'
    .TextToColumns Destination:=Range("R7"), DataType:=xlDelimited, _
            TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
            Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar:="_", _
            FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True
    End With
End Sub

Alors effectivement j'ai besoin de l'intégrer dans la MACRO.

Merci GameOver pour la piste, et merci Banzai64 pour le Code tout fait,

Ca fonctionne à merveille !!

Rechercher des sujets similaires à "langage vba fonction"