Problème de copie/recherche Instr
Résolu/Fermé
Reizo
Messages postés
17
Date d'inscription
jeudi 17 janvier 2013
Statut
Membre
Dernière intervention
21 janvier 2013
-
21 janv. 2013 à 10:05
Reizo Messages postés 17 Date d'inscription jeudi 17 janvier 2013 Statut Membre Dernière intervention 21 janvier 2013 - 21 janv. 2013 à 15:55
Reizo Messages postés 17 Date d'inscription jeudi 17 janvier 2013 Statut Membre Dernière intervention 21 janvier 2013 - 21 janv. 2013 à 15:55
A voir également:
- Problème de copie/recherche Instr
- Copie cachée - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Copie écran samsung - Guide
- Super copie - Télécharger - Gestion de fichiers
- Copie disque dur - Guide
7 réponses
Utilisateur anonyme
21 janv. 2013 à 10:33
21 janv. 2013 à 10:33
Bonjour
As-tu fait du pas à pas pour vérifier la valeur de PositionOccurence ?
N'oublie pas qu'il y a de nombreux cas où Instr rend autre chose que zéro sans que la chaîne soit trouvée, par exemple si String1 est null ou string2 est vide ou null.
As-tu fait du pas à pas pour vérifier la valeur de PositionOccurence ?
N'oublie pas qu'il y a de nombreux cas où Instr rend autre chose que zéro sans que la chaîne soit trouvée, par exemple si String1 est null ou string2 est vide ou null.
Reizo
Messages postés
17
Date d'inscription
jeudi 17 janvier 2013
Statut
Membre
Dernière intervention
21 janvier 2013
21 janv. 2013 à 10:44
21 janv. 2013 à 10:44
Oui j'ai fait du pas à pas et apparemment, PositionOccurence a la valeur "1" 50 fois de suite et je ne sais pas pourquoi...
Sinon que me conseillez-vous comme méthode ?
Sinon que me conseillez-vous comme méthode ?
Utilisateur anonyme
21 janv. 2013 à 13:55
21 janv. 2013 à 13:55
Quand tu fais du pas à pas, arrête-toi sur un cas où tu trouves 1 alors que tu t'attends à 0.
Vérifie les valeurs de R.Cells(iR, 4) et EQ.Cells(iL, 7). Si tu ne comprends pas pourquoi InStr ne te donne pas la bonne valeur, relis la définition de la fonction InStr, et reviens mettre ici les valeurs de R.Cells(iR, 4) et de EQ.Cells(iL, 7)
Vérifie les valeurs de R.Cells(iR, 4) et EQ.Cells(iL, 7). Si tu ne comprends pas pourquoi InStr ne te donne pas la bonne valeur, relis la définition de la fonction InStr, et reviens mettre ici les valeurs de R.Cells(iR, 4) et de EQ.Cells(iL, 7)
Reizo
Messages postés
17
Date d'inscription
jeudi 17 janvier 2013
Statut
Membre
Dernière intervention
21 janvier 2013
Modifié par Reizo le 21/01/2013 à 15:08
Modifié par Reizo le 21/01/2013 à 15:08
J'ai fait ce que tu m'as dit, je me suis arrêté à un moment ou Instr me renvoie 1 alors que je m'attends à 0.
Les valeurs de R.Cells et EQ.Cells sont bonnes.
Instr est censée me retourner 1 quand EQ.Cells(iL, 7) est null ou nothing, elle est censée me retourner 0 quand EQ.Cells(iL, 7) est introuvable ou R.Cells(iR, 4) est null ou nothing ou quand 1 > R.Cells(iR, 4) (ce que je comprend pas trop d'ailleurs).
Et la valeur dont je dois me servir est quand Instr trouve une occurence, elle est censée me renvoyer la ligne correspondante, or ben, elle me la renvoie pas.
En fait au final Instr me renvoie toujours soit 1 soit 0 et quand je mets
Elle me copie toutes les lignes analysées dans la nouvelle feuille
Les valeurs de R.Cells et EQ.Cells sont bonnes.
Instr est censée me retourner 1 quand EQ.Cells(iL, 7) est null ou nothing, elle est censée me retourner 0 quand EQ.Cells(iL, 7) est introuvable ou R.Cells(iR, 4) est null ou nothing ou quand 1 > R.Cells(iR, 4) (ce que je comprend pas trop d'ailleurs).
Et la valeur dont je dois me servir est quand Instr trouve une occurence, elle est censée me renvoyer la ligne correspondante, or ben, elle me la renvoie pas.
En fait au final Instr me renvoie toujours soit 1 soit 0 et quand je mets
PositionOccurence = InStr(2, R.Cells(iR, 4).Value, EQ.Cells(iL, 7).Value, vbTextCompare) If PositionOccurence <> 0 And PositionOccurence <> 1 Then R.Range(iR & ":" & iR).Copy AV.Cells(iAV, 1)
Elle me copie toutes les lignes analysées dans la nouvelle feuille
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Reizo
Messages postés
17
Date d'inscription
jeudi 17 janvier 2013
Statut
Membre
Dernière intervention
21 janvier 2013
21 janv. 2013 à 15:30
21 janv. 2013 à 15:30
Problème réglé, j'ai juste changé la condition, si la case n'est pas vide et qu'elle correspond ça renverra forcément quelque chose d'autre que 1 ou 0 donc ça marche comme ça :
En tous cas merci de ton aide, a bientot.
PositionOccurence = InStr(1, R.Cells(iR, 4).Value, EQ.Cells(iL, 7).Value, vbTextCompare) If PositionOccurence > 1 Then R.Range(iR & ":" & iR).Copy AV.Cells(iAV, 1) 'Commande de copie
En tous cas merci de ton aide, a bientot.
Utilisateur anonyme
21 janv. 2013 à 15:42
21 janv. 2013 à 15:42
ou quand 1 > R.Cells(iR, 4) (ce que je comprend pas trop d'ailleurs)
J'ai d'abord cru que tu avais mal lu la doc... Mais je lis bien la même chose que toi. Sûrement une erreur de l'aide, la seule chose logique ici serait
si start > longueur(string1)
Les valeurs de R.Cells et EQ.Cells sont bonnes.
Si tu as obtenu 1, c'est bien que tu étais dans un des cas prévus pour avoir 1.
Pourrais-tu, au lieu de me dire que c'était les "bonnes" valeurs, me dire quelles valeurs il y avait ?
J'ai d'abord cru que tu avais mal lu la doc... Mais je lis bien la même chose que toi. Sûrement une erreur de l'aide, la seule chose logique ici serait
si start > longueur(string1)
Les valeurs de R.Cells et EQ.Cells sont bonnes.
Si tu as obtenu 1, c'est bien que tu étais dans un des cas prévus pour avoir 1.
Pourrais-tu, au lieu de me dire que c'était les "bonnes" valeurs, me dire quelles valeurs il y avait ?
If PositionOccurence <> 0 And PositionOccurence <> 1 Then
R.Range(iR & ":" & iR).Copy AV.Cells(iAV, 1)
Je n'avais pas relevé... Ça semble tellement impossible... En pas à pas, tu passes donc systématiquement sur la ligne R.Range(iR & ":" & iR).Copy AV.Cells(iAV, 1), même si PositionOccurence = 0 ou 1 ?
R.Range(iR & ":" & iR).Copy AV.Cells(iAV, 1)
Je n'avais pas relevé... Ça semble tellement impossible... En pas à pas, tu passes donc systématiquement sur la ligne R.Range(iR & ":" & iR).Copy AV.Cells(iAV, 1), même si PositionOccurence = 0 ou 1 ?
Reizo
Messages postés
17
Date d'inscription
jeudi 17 janvier 2013
Statut
Membre
Dernière intervention
21 janvier 2013
21 janv. 2013 à 15:55
21 janv. 2013 à 15:55
les valeurs de R.Cells et EQ.Cells étaient des chaines de caractères du genre WL524-624 des trucs comme ça ou des références contenant WL...... etc.
oui en pas à pas étrangement on voit bien que, que la valeur soit à 1 ou 0 on passe directement à la ligne de copie, d'ailleurs j'ai toujours pas compris les subtilités de Instr mais bon, maintenant que ça marche je ne vais pas me plaindre ^^
oui en pas à pas étrangement on voit bien que, que la valeur soit à 1 ou 0 on passe directement à la ligne de copie, d'ailleurs j'ai toujours pas compris les subtilités de Instr mais bon, maintenant que ça marche je ne vais pas me plaindre ^^