Problème de for next
Le
Pierre F.
Bonjour à toutes et à tous
J'ai une petite macro qui compte des voyelles dans une liste de mots et
qui "ajuste" le nombre de caractères de chaque mot en éliminant les
signes spéciaux (tiret, espace, apostrophe)
Les résultats sont ensuite placés dans les colonnes C et E
Je souhaiterais y ajouter un test à la 2e ligne pour éviter qu'elle
fasse le boulot sur des lignes vides mais elle plante justement à cet
endroit: le message est "Next sans For".
For q = To 950
--> If Cells(q, 1) = "" Then Next q
Mot = Cells(q, 2)
NombreVoyelle = 0
NBlettres = Len(Mot)
For Compteur = 1 To Len(Mot)
Select Case Mid(Mot, Compteur, 1) 'compte les voyelles
Case "a", "e", "i", "o", "u", "y", "é", "è", "ê", "î", "ô", "â",
"ù", "û", "à", "ü", "ë"
NombreVoyelle = NombreVoyelle + 1
End Select
Select Case Mid(Mot, Compteur, 1) 'décompte les espaces vides
Case " ", "-", "'", ".", ","
NBlettres = NBlettres - 1
End Select
Next
Cells(q, 3) = NombreVoyelle
Cells(q, 5) = NBlettres
Next q
-
merci pour votre aide.
Cordialement,
Pierre F.
J'ai une petite macro qui compte des voyelles dans une liste de mots et
qui "ajuste" le nombre de caractères de chaque mot en éliminant les
signes spéciaux (tiret, espace, apostrophe)
Les résultats sont ensuite placés dans les colonnes C et E
Je souhaiterais y ajouter un test à la 2e ligne pour éviter qu'elle
fasse le boulot sur des lignes vides mais elle plante justement à cet
endroit: le message est "Next sans For".
For q = To 950
--> If Cells(q, 1) = "" Then Next q
Mot = Cells(q, 2)
NombreVoyelle = 0
NBlettres = Len(Mot)
For Compteur = 1 To Len(Mot)
Select Case Mid(Mot, Compteur, 1) 'compte les voyelles
Case "a", "e", "i", "o", "u", "y", "é", "è", "ê", "î", "ô", "â",
"ù", "û", "à", "ü", "ë"
NombreVoyelle = NombreVoyelle + 1
End Select
Select Case Mid(Mot, Compteur, 1) 'décompte les espaces vides
Case " ", "-", "'", ".", ","
NBlettres = NBlettres - 1
End Select
Next
Cells(q, 3) = NombreVoyelle
Cells(q, 5) = NBlettres
Next q
-
merci pour votre aide.
Cordialement,
Pierre F.

Poser une question


Peut être essayer un GOTO
For q = To 950
--> If Cells(q, 1) = "" Then GoTo Suite
Mot = Cells(q, 2)
NombreVoyelle = 0
NBlettres = Len(Mot)
For Compteur = 1 To Len(Mot)
Select Case Mid(Mot, Compteur, 1) 'compte les voyelles
Case "a", "e", "i", "o", "u", "y", "é", "è", "ê", "î", "ô", "â",
"ù", "û", "à", "ü", "ë"
NombreVoyelle = NombreVoyelle + 1
End Select
Select Case Mid(Mot, Compteur, 1) 'décompte les espaces vides
Case " ", "-", "'", ".", ","
NBlettres = NBlettres - 1
End Select
Next
Cells(q, 3) = NombreVoyelle
Cells(q, 5) = NBlettres
Suite:
Next q
Camille
"Pierre F." c355$48ca3b3d$55da2b33$
Remplace
For q = To 950
par
For q = 1 To 950
If Cells(q, 1) = "" Then Next q
par
If Cells(q, 1) <> "" Then
ça devrait aller
--
Cordialement
"Pierre F." news:c355$48ca3b3d$55da2b33$
Ça le fait !!!
Mille mercis.
Cordialement,
Pierre F.
OK c'était un erreur de "transcription"
La macro s'arrête: "Next sans For"
Que devrais-je mettre à la suite du Then ?
Cordialement,
Pierre F.
For q = 1 To 950
If Cells(q, 1) <> "" Then
Mot = Cells(q, 2)
NombreVoyelle = 0
NBlettres = Len(Mot)
For Compteur = 1 To Len(Mot)
Select Case Mid(Mot, Compteur, 1) 'compte les voyelles
Case "a", "e", "i", "o", "u", "y", "é", "è", "ê", "î", "ô", "â", "ù",
"û", "à", "ü", "ë"
NombreVoyelle = NombreVoyelle + 1
End Select
Select Case Mid(Mot, Compteur, 1) 'décompte les espaces vides
Case " ", "-", "'", ".", ","
NBlettres = NBlettres - 1
End Select
Next
Cells(q, 3) = NombreVoyelle
Cells(q, 5) = NBlettres
End If
Next q
Mishell
"Pierre F." news:c0252$48ca9e27$55da2b33$