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
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 SubBonjour,
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 SubBonjour
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)) ThenIsNumeric 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: