Conditions IF avec Like

Re tout le monde

aujourd'hui je galère avec ma conditions avec LIKE que j'arrive a effectué mais je n'arrive pas a correctement l'afficher la il me l'affiche sur la totalité de la colonne C alors que je voudrais qu'il remplace seulement le chiffre 5200 je vous met un fichier d'exemple avec des explications un peu plus détaillé a l'intérieur en gros je voudrais que selon La valeur de la colonne F (CH , VR , et PAI de ma feuille Ca change le numéro " 52000" part le numéro correspondant

si vous avez des questions j'essayerai d'y répondre rapidement

voici mon code et mon fichier

4exmacrotedi.xlsm (15.85 Ko)
Sub TESTMacroExportTEDI()

'
' Test Macro

'D?claration de variable
Dim i%, iRC&, WsC As Worksheet, THdr
Application.ScreenUpdating = False
Worksheets.Add.Name = "ExportCaisse" & Worksheets.Count + 1 'Creation de la page Export
Set WsC = ActiveSheet
THdr = Split("date rgt,code journal,compte,debit,credit,Libellé,Ref Piece", ",") ' Cr?ation du tableau sur feuille de calcul cr?e
    For i = 0 To UBound(THdr)
    WsC.Cells(1, 1 + i) = THdr(i)
    Next
        iRC = 2
        Arrs = Feuil1.[A2].CurrentRegion.Value2
        For i = 2 To UBound(Arrs)
        THdr(0) = Arrs(i, 1)
        THdr(1) = Arrs(i, 2)

        payement = THdr(5)

        If payement Like "*-CH-*" Then
            THdr(2) = "580100"
        ElseIf payement Like "*-CB-*" Then
            THdr(2) = "580200"
        ElseIf payement Like "*-VR-*" Then
            THdr(2) = "580400"
        ElseIf payement Like "*-PAI*" Then
            THdr(2) = "580600"

        Else
        THdr(2) = Arrs(i, 3)

        End If

        THdr(3) = Arrs(i, 4)
        THdr(4) = Arrs(i, 5)
        THdr(5) = Arrs(i, 6)
        THdr(6) = Arrs(i, 7)

        WsC.Cells(iRC, 1).Resize(1, UBound(THdr) + 1) = THdr 'Plus 1 ligne
        iRC = iRC + 1

    Next
End Sub

Bonjour,

C'est normal, il manque une condition pour dire si tu dois remplacer ou non la valeur de la colonne C, il semble que tu ne veuilles la remplacer que si c'est un nombre, donc j'ai rajouté une petite condition qui va dans ce sens.

J'avoue que j'ai eu du mal à lire ton code, entre la façon dont tu crées ton tableau, les noms des variables qui ne me parlaient pas, et des tabulations qui manquaient par endroit

Voici le résultat:

Sub TESTMacroExportTEDI()

'
' Test Macro

'D?claration de variable
Dim i%, iRC&, WsC As Worksheet, THdr
Application.ScreenUpdating = False
Worksheets.Add.Name = "ExportCaisse" & Worksheets.Count + 1 'Creation de la page Export
Set WsC = ActiveSheet
THdr = Split("date rgt,code journal,compte,debit,credit,Libellé,Ref Piece", ",") ' Cr?ation du tableau sur feuille de calcul cr?e
For i = 0 To UBound(THdr)
    WsC.Cells(1, 1 + i) = THdr(i)
Next i

iRC = 2
Arrs = Feuil1.[A2].CurrentRegion.Value2
For i = 2 To UBound(Arrs)
    THdr(0) = Arrs(i, 1)
    THdr(1) = Arrs(i, 2)

    payement = THdr(5)

    If IsNumeric(Arrs(i, 3)) Then
        If payement Like "*-CH-*" Then
            THdr(2) = "580100"
        ElseIf payement Like "*-CB-*" Then
            THdr(2) = "580200"
        ElseIf payement Like "*-VR-*" Then
            THdr(2) = "580400"
        ElseIf payement Like "*-PAI*" Then
            THdr(2) = "580600"
        Else
            THdr(2) = Arrs(i, 3)
        End If
    Else
        THdr(2) = Arrs(i, 3)
    End If

    THdr(3) = Arrs(i, 4)
    THdr(4) = Arrs(i, 5)
    THdr(5) = Arrs(i, 6)
    THdr(6) = Arrs(i, 7)

    WsC.Cells(iRC, 1).Resize(1, UBound(THdr) + 1) = THdr 'Plus 1 ligne
    iRC = iRC + 1

Next i
End Sub

Bonjour

Merci a vous ça fonctionne comme je veux ,

désolé j'ai pas encore l'habitude de mettre des commentaires dans mon code, j'essayerai d'en mettre a l'avenir

mais si je comprend bien vous avez déclarer que ' Si c'est une valeur numérique alors changer cette valeur par ........ " Merci a vous :)

Oui des commentaires seraient les bienvenus, et des noms de variables qui parlent, après ce sont mes habitudes, ça permet à n'importe qui de mieux comprendre le code et de pouvoir intervenir dessus!

En effet c'est la condition que j'ai mis avec:

If IsNumeric(Arrs(i, 3)) Then

IsNumeric fait partie du module Information de VBA, elle renvoie true si la valeur est un nombre (même stocké au format texte), et false dans le cas contraire.

Ce module est très pratique, on peut le retrouver dans l'explorateur d'objet:

image
Rechercher des sujets similaires à "conditions like"