OVH Cloud OVH Cloud

Code trop poche

3 réponses
Avatar
JeanPasse
Bonjour

En VBA Excel 97

Ca fonctionne mais comment améliorer le code ci-dessous...

J'écris dans une cellule la catégorie à laquelle appartient un fichier photo
Selection.Value = Mid(tx, 6, separe1 - 6)

Puis avant de faire mon CD, je veux vérifier que l'orthographe est bon avec
le code suivant:
K9 contient le nombre de catégorie et au dessous la colonne énumère ces
catégories
-------------------
For i = 1 To Range("K9")
If Selection.Value = Range("K9").Offset(i, 0).Value Then
GoTo trouve
Else
End If
Next

trouvepas:
Range("K8").Value = "ERREUR"
GoTo termine

trouve:
------------------

Mon code me parait bien poche surtout pour la suite losque je veux vérifier
la colonne des sous-catégories qui sont très nombreuses

Merci pour votre attention et vos conseils

René

3 réponses

Avatar
isabelle
bonjour René,

il est difficile de comprendre à quoi sert le code,
si la condition( If..) est vrai quand i= 1
on sort immédiatement du For next.
ne serait t'il pas plus simple de vérifier avec la commande Find
qu'est qui est primordial est ce que c'est que la valeur soit présente
ou non ?

isabelle


Bonjour

En VBA Excel 97

Ca fonctionne mais comment améliorer le code ci-dessous...

J'écris dans une cellule la catégorie à laquelle appartient un fichier photo
Selection.Value = Mid(tx, 6, separe1 - 6)

Puis avant de faire mon CD, je veux vérifier que l'orthographe est bon avec
le code suivant:
K9 contient le nombre de catégorie et au dessous la colonne énumère ces
catégories
-------------------
For i = 1 To Range("K9")
If Selection.Value = Range("K9").Offset(i, 0).Value Then
GoTo trouve
Else
End If
Next

trouvepas:
Range("K8").Value = "ERREUR"
GoTo termine

trouve:
------------------

Mon code me parait bien poche surtout pour la suite losque je veux vérifier
la colonne des sous-catégories qui sont très nombreuses

Merci pour votre attention et vos conseils

René




Avatar
JeanPasse
Merci de me répondre

Find n'est pas dans le liste de fonctions... Mais j'ai trouvé avec
Recherche.
Ca ne me parait pas simplifier mon code qui fonctionne bien. Peut-etre
convient-il, je retourne vérifier plus à fond
C'est ma permière macro en VBA. Tout fonctionne bien mais ... je voudrais
faire mieux.

J'essai de faire plus clair.
D'une part j'ai un nom ( une variable, catégorie pour photo) : disons
Portrait
D'autre part j'ai une colonne de toutes les catégories en K10 avec en K9 le
nombre de ligne de cette colonne.
Disons 3: Vacance, Travail, Portrait
Je désire vérifier que Portrait appartient à la colonne de catégories.
C'est pour vérification de l'orthographe avant de bruler un CD.
Avec mon code j'ai ainsi trouvé 5 occurences de ...Protrait

Revoici mon code légèrement modifié

For i = 1 To Range("K9") ' Pout tout élément de la colonne de catégorie
If Portrait = Range("K9").Offset(i, 0).Value Then
' On a trouvé une identité, donc Portrait est bien écrit.
GoTo trouve
Else
' Pas identique - Rien à faire si la colonne n'est pas terminée
End If
Next ' Pas identique, mais voyons les suivants de la colonne

trouvepas:
' La macro arrête et je fais des corrections manuelles dans mes
fichiers. (Pas auto)
Range("K8").Value = "ERREUR"
GoTo termine

trouve:
'Ici je continue en vérifiant l'orthographe des sous-catégories

J'espère être plus clair.

René

"isabelle" a écrit dans le message de news:

bonjour René,

il est difficile de comprendre à quoi sert le code,
si la condition( If..) est vrai quand i= 1
on sort immédiatement du For next.
ne serait t'il pas plus simple de vérifier avec la commande Find
qu'est qui est primordial est ce que c'est que la valeur soit présente ou
non ?

isabelle


Bonjour

En VBA Excel 97

Ca fonctionne mais comment améliorer le code ci-dessous...

J'écris dans une cellule la catégorie à laquelle appartient un fichier
photo
Selection.Value = Mid(tx, 6, separe1 - 6)

Puis avant de faire mon CD, je veux vérifier que l'orthographe est bon
avec le code suivant:
K9 contient le nombre de catégorie et au dessous la colonne énumère ces
catégories
-------------------
For i = 1 To Range("K9")
If Selection.Value = Range("K9").Offset(i, 0).Value Then
GoTo trouve
Else
End If
Next

trouvepas:
Range("K8").Value = "ERREUR"
GoTo termine

trouve:
------------------

Mon code me parait bien poche surtout pour la suite losque je veux
vérifier la colonne des sous-catégories qui sont très nombreuses

Merci pour votre attention et vos conseils

René




Avatar
JeanPasse
Voilèa, j'ai bien vérifié Find, mais ca me semble inaproprié pour mon besoin
actuel.
Pour compléter ma réponse précedent, il me faudrait quelque chose comme:

Avec la variable Portrait
IF inStr("VacanceTravailPortrait", "Portrait") = TRUE THEN je continue
IF inStr("VacanceTravailPortrait", "Protrait") = FALSE THEN STOP

Mais la gestion d'un lot de 100 ou 200 mots se fait mieux sur une colonne.
René

"isabelle" a écrit dans le message de news:

bonjour René,

il est difficile de comprendre à quoi sert le code,
si la condition( If..) est vrai quand i= 1
on sort immédiatement du For next.
ne serait t'il pas plus simple de vérifier avec la commande Find
qu'est qui est primordial est ce que c'est que la valeur soit présente ou
non ?

isabelle


Bonjour

En VBA Excel 97

Ca fonctionne mais comment améliorer le code ci-dessous...

J'écris dans une cellule la catégorie à laquelle appartient un fichier
photo
Selection.Value = Mid(tx, 6, separe1 - 6)

Puis avant de faire mon CD, je veux vérifier que l'orthographe est bon
avec le code suivant:
K9 contient le nombre de catégorie et au dessous la colonne énumère ces
catégories
-------------------
For i = 1 To Range("K9")
If Selection.Value = Range("K9").Offset(i, 0).Value Then
GoTo trouve
Else
End If
Next

trouvepas:
Range("K8").Value = "ERREUR"
GoTo termine

trouve:
------------------

Mon code me parait bien poche surtout pour la suite losque je veux
vérifier la colonne des sous-catégories qui sont très nombreuses

Merci pour votre attention et vos conseils

René