Test sur contenu de texte
Résolu
MP202013
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
MP202013 Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
MP202013 Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
Bonjour, Je souhaite tester dans une boucle d'une macro que j'ai créé.
Le test doit donner ajouter 1 a la variable indicecodeliste si le texte Code sous la forme "1SPOLPH" (ce code viens d'une cellule A indicecodematrice de la feuille matrice) contient SPO et LPH (ces valeurs viennent de deux cellules Z8 et Z12 de la feuille FicheEspace) et qui ne fait rien dans le cas inverse.
Voici le code que j'ai entré
If
Worksheets("Matrice").Range("A" & indicecodematrice).Value Like Worksheets("FicheEspace").Range("Z8").Value
And Worksheets("Matrice").Range("A" & indicecodematrice).Value Like Worksheets("FicheEspace").Range("Z12").Value
Then
Worksheets("FicheEspace").Range("O" & indicecodeliste).Value = Worksheets("Matrice").Range("A" & indicecodematrice).Value
indicecodeliste = indicecodeliste + 1
Else
End If
Ce code ne fait rien
Merci d'avance pour vos réponse
Le test doit donner ajouter 1 a la variable indicecodeliste si le texte Code sous la forme "1SPOLPH" (ce code viens d'une cellule A indicecodematrice de la feuille matrice) contient SPO et LPH (ces valeurs viennent de deux cellules Z8 et Z12 de la feuille FicheEspace) et qui ne fait rien dans le cas inverse.
Voici le code que j'ai entré
If
Worksheets("Matrice").Range("A" & indicecodematrice).Value Like Worksheets("FicheEspace").Range("Z8").Value
And Worksheets("Matrice").Range("A" & indicecodematrice).Value Like Worksheets("FicheEspace").Range("Z12").Value
Then
Worksheets("FicheEspace").Range("O" & indicecodeliste).Value = Worksheets("Matrice").Range("A" & indicecodematrice).Value
indicecodeliste = indicecodeliste + 1
Else
End If
Ce code ne fait rien
Merci d'avance pour vos réponse
A voir également:
- Test sur contenu de texte
- Test performance pc - Guide
- Test disque dur - Télécharger - Informations & Diagnostic
- Test steam deck oled - Guide
- Test composant pc - Guide
- Test batterie pc - Guide
2 réponses
Bonjour
Essaies ceci
mais si Tu boucles sur les indices sur un tableau important, ta procédure d'être chronophage (mot à la mode pour frimer)
Essaies ceci
With Worksheets("FicheEspace") Test1 = .Range("Z8") Test2 = .Range("Z12") Ref = Sheets("matrice").Cells(indicecodematrice, "A") If InStr(1, Ref, Test1) * InStr(1, Ref, Test2) Then .Cells(indicecodematrice, "O") = Ref lndicecodeliste = indicecodematrice + 1 End If
mais si Tu boucles sur les indices sur un tableau important, ta procédure d'être chronophage (mot à la mode pour frimer)
Bonjour,
déjà il y a un truc que j'ai jamais compris, mais peut etre ca vient de moi pourquoi utiliser un Range ("A" & indicecodematrice) alors que un cells(indicecodematrice,1) fais exactement la même chose et on peut le manipuler beaucoup plus facilement.
Ensuite, le problème vient peut être d'un problème de parenthèse comme il y en a pas.
If
((Worksheets("Matrice").Range("A" & indicecodematrice).Value Like Worksheets("FicheEspace").Range("Z8").Value)
And (Worksheets("Matrice").Range("A" & indicecodematrice).Value Like Worksheets("FicheEspace").Range("Z12").Value))
Then
Faut essayer, pas sur que ça solutionne le problème.
Dans ce cas présent, je ne pense pas que le "Else" soit nécessaire sachant qu'aucune instruction ne le compose, peut être essayer de l'enlever.
Sinon ca devrait marcher ... mais defois on trouve juste un tout petit truc qui est mal ecris que l'on ne voit pas
déjà il y a un truc que j'ai jamais compris, mais peut etre ca vient de moi pourquoi utiliser un Range ("A" & indicecodematrice) alors que un cells(indicecodematrice,1) fais exactement la même chose et on peut le manipuler beaucoup plus facilement.
Ensuite, le problème vient peut être d'un problème de parenthèse comme il y en a pas.
If
((Worksheets("Matrice").Range("A" & indicecodematrice).Value Like Worksheets("FicheEspace").Range("Z8").Value)
And (Worksheets("Matrice").Range("A" & indicecodematrice).Value Like Worksheets("FicheEspace").Range("Z12").Value))
Then
Faut essayer, pas sur que ça solutionne le problème.
Dans ce cas présent, je ne pense pas que le "Else" soit nécessaire sachant qu'aucune instruction ne le compose, peut être essayer de l'enlever.
Sinon ca devrait marcher ... mais defois on trouve juste un tout petit truc qui est mal ecris que l'on ne voit pas
With Worksheets("FicheEspace")
Test1 = .Range("Y8")
Test2 = .Range("Y12")
Ref = Sheets("Matrice").Cells(indicecodematrice, "A")
If InStr(1, Ref, Test1) * InStr(1, Ref, Test2) Then
.Cells(indicecodeliste, "O") = Ref
indicecodeliste = indicecodeliste + 1
End If
End With
Ca marche super!
Merci beaucoup!