Variable "texte" string qui ne passe pas

  • Initiateur de la discussion Initiateur de la discussion popcorn
  • 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 !

popcorn

XLDnaute Occasionnel
Bonjour à toutes et à tous,


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

Merci de votre aide.
 
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
 
- 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

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
280
Réponses
3
Affichages
611
Réponses
4
Affichages
372
Retour