Je récupère des données dans un classeur excel, que je recopie sur une autre feuille.
J'utilise deux critères pour repérer ma ligne, mon numéro de commande et le détail du paiement ("Commission", "Frais de fermeture variables"...)
Ces deux critères sont déclarés en variable string.
Ce que je ne comprend pas, c'est que si la variable est le mot "Commission", les lignes sont trouvées.
mais dès lors que j'utilise les termes "Frais de fermeture variables" ... cela ne fonctionne pas.
Je fais un essai en remplaçant le texte pas x,y,z.. les lignes sont bien trouvées et copiées dans mon autre feuille.
J'ai bien l'impression que cela vient d'un problème d'espace entre les mots mais comment faire pour m'en sortir car ces donnés sont toujours sous format, venant d'une source externe.
Voici le bout de code que j'utlisise
Code:
Sub Cherche2()
Dim DernLigneS As Integer
Dim DernLigneD As Integer
Dim order As String
Dim a As String
Dim b As String
Dim c As String
Dim d As String
Dim e As String
Dim r As Range 'Ligne..du tableau
a = "Commission "
'b = "Frais de traitement "
'c = "Frais de fermeture variables "
'd = "Remboursement de l'expédition "
'e = "Expédition "
DernLigneS = Sheets("Source").Range("A25").End(xlUp).Row
DernLigneD = Sheets("Destination").Range("B" & Rows.Count).End(xlUp).Row
'order = Sheets("Destination").Cells(i, 2).Value
For i = 2 To DernLigneD
order = Sheets("Destination").Cells(i, 2).Value
'Recherche la ligne qui contient le numéro de commande et "Comission", copie la valeur de la colonne F de la même ligne dans "Destination"
For Each r In ThisWorkbook.Sheets("Source").Range("A1").CurrentRegion.Rows
If r.Cells(2) = order And r.Cells(5) = a Then
MsgBox "ligne trouvée " & r.Row
Sheets("Destination").Cells(i, 10) = Cells(r.Row, 6).Value
Exit For 'fin recherche
End If
Next
Next
End Sub
bonjour
a = "Commission " 'il y a un espace à la fin b,c,d,e aussi
utilise replace
a = Replace(a, " ", "")
replace(r.Cells(5)," ","") = Replace(a, " ", "")
comparer avec ucase ex:ucase(r.Cells(5)) =ucase( a)
ou les 2
ou essaye de comparer avec like
If r.Cells(2) = order And r.Cells(5) Like a & "*" Then