Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Problème dans une boucle

Magic_Doctor

XLDnaute Barbatruc
Bonjour à toutes et à tous,

Je voudrais réaliser une boucle qui vérifie la condition suivante sur 10 cellules juxtaposées.
Dans chaque cellule peut y avoir comme texte :
"Solution Sx"
"Solvant Sx"
"Rien du tout"

Si dans la cellule est écrit "Solution Sx" ou "Solvant Sx", alors le suffixe "x" est mis en indice (en fait je me contente de diminuer la taille de sa police au moyen d'une petite fonction bricolée -et qui fonctionne- qui s'intitule "Retaille").

Voic comment j'ai écrit la boucle :

For i% = 1 To 10
Set cell = [A1].Offset( i%, colonne%)
If Left$(cell.Value, Len(cell.Value) - 1) = "Solvant S" Then
a% = 9
Else ' ="Solution S"
a% = 10
End If
Retaille cell, InStr(1, cell.Value, "S", 1) + a%, 1, 5
Next i%

La boucle doit certainement se planter quand elle tombe sur une cellule contenant "Rien du tout". Je pense qu'il doit falloir mettre un "Loop" quelque part ou quelque chose dans le style pour que la boucle saute cet événement.

Enfin, un grand merci pour m'aider à me sortir avec succés de cette boucle.
 

Pierrot93

XLDnaute Barbatruc
Re : Problème dans une boucle

Bonjour Magic Doctor

en supposant que cell soit bien une variable défine de type "range", essaye en testant de la façon suivante :

Code:
    If Not cell Is Nothing Then

bon après midi
@+
 

Magic_Doctor

XLDnaute Barbatruc
Re : Problème dans une boucle

cell a bien été déclaré comme une variable de type "range".

Malheureusement, malgré "If Not cell Is Nothing Then", la boucle s'arrête dès qu'elle tombe sur une cellule avec écrit "Rien du tout".
 

Pierrot93

XLDnaute Barbatruc
Re : Problème dans une boucle

Re,

en fait ta cellule n'est pas vide, si j'ai bien compris... sur quelle ligne de code cela plante ? Mets peut être ton fichier avec le code complet sans données confidentielles.

@+
 

Pierrot93

XLDnaute Barbatruc
Re : Problème dans une boucle

Re

si j'ai bien compris, cela pourrait se résumer à ceci :

Code:
Sub test()
Dim c As Range
For Each c In Range("A3:A8")
    If c.Value Like "Solvant*" Or c.Value Like "Solution*" Then _
        c.Characters(Len(c.Value), 1).Font.Size = 5
Next c
End Sub


@+
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…