Test apparition variable dans une chaîne de caractères

Résolu/Fermé
N - 16 mars 2016 à 10:03
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 - 16 mars 2016 à 15:49
Bonjour,
j'aurais une question toute simple que je ne parviens néanmoins pas à résoudre. Tout d'abord, dans la feuille Feuil1, je stocke une chaîne de caractère (un mot) dans ma variable MC1 (premier mot-clé). Ensuite je voudrais savoir si ce mot-clé apparait dans le titre d'un document. Mes titres de documents sont listés dans les cellules de ma feuille nommée Liste.
J'avais pensé faire comme ceci mais ça ne fonctionne pas (Erreur de compilation : Erreur de synthaxe).

For j = 1 To i 'j va parcourir la liste de tout les fichiers référencés précédemment
'MOTS-CLES
If Range("A" & k).Value Like * & MC1 & * Then
k = 18 + j
Range("A" & k, "B" & k).Merge 'Fusionne les cellules Ak et Bk du Nom
Range("C" & k, "D" & k).Merge 'Fusionne les cellules Ck et Dk du Type
Sheets("Liste").Range("A" & j & ":E" & j).Copy Sheets("Feuil1").Range("A" & k & ":G" & k) 'Remplit la k-ième ligne du tableau de résultat


Merci d'avance pour les réponses que vous pourrez m'apporter

A voir également:

7 réponses

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
16 mars 2016 à 10:15
Bonjour N, bonjour le forum,

Peut-être avec la fonction InStr qui donnerait :

If InStr(1, Range("A" & k).Value, "MC1", vbTextCompare) <> 0 Then

0
Merci pour la réponse.
Le programme me retourne "Erreur d'exécution '1004' : La méthose 'Range' de l'objet '_Global' a échoué.". C'est peut-être parce que je travaille avec des cellules fusionnées ?...
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
16 mars 2016 à 10:47
Re,

Oui VBA et les cellules fusionnées ne font pas bon ménage... Essaie comme ça :

If InStr(1, Range("A" & k)(1).Value, "MC1", vbTextCompare) <> 0 Then


Cela signifie que la valeur retenue est dans la première cellule de la plage fusionnée...
0
Re,
ça re-indique la même erreur... JE vais essayer de défusionner mes cellules pour voir ce que ça donne...
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
16 mars 2016 à 11:00
Re,

C'est difficile de t'aider sans le code complet...
Tu utilises la variable k mais on ne sait ni où elle est déclarée ni où elle est initialisée/définie. Si elle est nulle, il est clair que Range("A0") va forcément planter...
0
PS : cette version correspond à la version "non-défusionnée" de mo classeur excel...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
16 mars 2016 à 11:20
Et... ?!
0
Et les cases sont encore celles qui sont fusionnées
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
16 mars 2016 à 11:34
Tu ne m'aides pas beaucoup ! Relis le post #5...
0
k est sup ou égal à 17
0
C'est bon, j'ai fini par résoudre ce problème. Merci quand même pour les tuyaux, ça aidera d'autres jeunes programmeurs !
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
16 mars 2016 à 15:45
Re,

Ce qui pourrait surtout aider les autres serait que tu nous donnes la solution que tu as trouvée... C'est un forum d'entraide ne l'oublies pas !
0
noemie.der Messages postés 6 Date d'inscription mardi 23 février 2016 Statut Membre Dernière intervention 16 mars 2016
16 mars 2016 à 15:47
If Sheets("Liste").Range("A" & j).Value Like "*" & MC1 & "*" Then

    
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
Modifié par ThauTheme le 16/03/2016 à 15:50
J'avais donc décelé le problème dans le post #5...
0