Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[VBA] truc incompréhensible... bug Excel2007 ???

1 réponse
Avatar
HD
Bonjour,

Je viens d'avoir quelque chose de bizarre... soit c'est un bug, soit il me
faudrait reboire du café pour me réveiller...

En cellule A1, tapez "nouveaux dossiers"
En cellule A2, tapez "nouveau dossier"

Si vous utilisez les lignes suivantes:
If InStr(1, ActiveCell.Value, "nouvea", vbTextCompare) And InStr(1,
ActiveCell.Value, "doss", vbTextCompare) Then
MsgBox "ok"
End If
Vous n'aurez pas "ok" qui va s'afficher lorsque vous étes en A1... alors que
logiquement vous devriez l'avoir sur A2 et aussi lorsque vous étes en A1.

Par contre avec les lignes suivantes:
If InStr(1, ActiveCell.Value, "nouvea", vbTextCompare) Then
If InStr(1, ActiveCell.Value, "doss", vbTextCompare) Then MsgBox "ok"
End If
Vous aurez bien "ok" qui va s'afficher dans les deux cas... Un peu comme si
le vba Excel n'acceptait pas de lancer 2 Instr() sur une même ligne
seulement dans certains cas... Avec "nouveau dossier" au singulier ça
passe... mais au pluriel non ??? Et j'ai eu également des cas où ça passe
alors que "nouveaux dossiers" est au pluriel mais que ce texte se trouve
avec certains autres mots. Exemple: "Quote-part nouveaux dossiers" va bien
afficher "ok".

Alors pourquoi celà passe dans certains cas et pas dans d'autres ??? A
savoir que je suis sous Excel 2007... J'ai testé sur un autre poste avec
Excel 2003 et celà ne passe pas non plus...

Merci d'avance pour votre aide
--
@+
HD

1 réponse

Avatar
bcar
Bonjour,
Essaye :

If InStr(1, ActiveCell.Value, "nouvea", vbTextCompare) > 0
And InStr(1, ActiveCell.Value, "doss", vbTextCompare) > 0 Then
MsgBox "ok"
End If

Ca marchera beaucoup mieux.

Instr renvoie un type long (qui indique la position de la première
occurence de la chaine cherchée) pas un bool.


HD a écrit :
Bonjour,

Je viens d'avoir quelque chose de bizarre... soit c'est un bug, soit il me
faudrait reboire du café pour me réveiller...

En cellule A1, tapez "nouveaux dossiers"
En cellule A2, tapez "nouveau dossier"

Si vous utilisez les lignes suivantes:
If InStr(1, ActiveCell.Value, "nouvea", vbTextCompare) And InStr(1,
ActiveCell.Value, "doss", vbTextCompare) Then
MsgBox "ok"
End If
Vous n'aurez pas "ok" qui va s'afficher lorsque vous étes en A1... alors que
logiquement vous devriez l'avoir sur A2 et aussi lorsque vous étes en A1.

Par contre avec les lignes suivantes:
If InStr(1, ActiveCell.Value, "nouvea", vbTextCompare) Then
If InStr(1, ActiveCell.Value, "doss", vbTextCompare) Then MsgBox "ok"
End If
Vous aurez bien "ok" qui va s'afficher dans les deux cas... Un peu comme si
le vba Excel n'acceptait pas de lancer 2 Instr() sur une même ligne
seulement dans certains cas... Avec "nouveau dossier" au singulier ça
passe... mais au pluriel non ??? Et j'ai eu également des cas où ça passe
alors que "nouveaux dossiers" est au pluriel mais que ce texte se trouve
avec certains autres mots. Exemple: "Quote-part nouveaux dossiers" va bien
afficher "ok".

Alors pourquoi celà passe dans certains cas et pas dans d'autres ??? A
savoir que je suis sous Excel 2007... J'ai testé sur un autre poste avec
Excel 2003 et celà ne passe pas non plus...

Merci d'avance pour votre aide