Excel - je comprends pas :-(

Résolu/Fermé
Ophelie75 Messages postés 264 Date d'inscription vendredi 11 juillet 2008 Statut Membre Dernière intervention 9 juillet 2009 - 22 juil. 2008 à 11:14
Ophelie75 Messages postés 264 Date d'inscription vendredi 11 juillet 2008 Statut Membre Dernière intervention 9 juillet 2009 - 23 juil. 2008 à 17:11
Bonjour,

Bonjour,

je ne comprends pas pourquoi ma macro ne fonctionne pas. En effet je l'ai déjà utilisé plusieurs fois dans d'autres fichiers et elle fonctionne très bien. Mais là elle ne se lance pas, aucune réaction. Je l'ai verifié des dizaines de fois je ne vois pas ce qui peut clocher. J'au beau appuyer sur RUN, aucune réaction, alors que normalement elle se lance correctement et commence le travail... Je ne comprends vraiment pas pourquoi... la voici

Sub Macro4()

For i = 4 To Cells(Rows.Count, 1).End(xlUp).Row
Sheets("Vente USA").Activate
Cells(i, 6).Select
Set check_data = Sheets("requet_temp").Columns(5).Find(What:=Cells(i, 6), LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious, MatchCase:=False)
If Not check_data Is Nothing Then
Cells(i, 1).Value = "X"
Else

End If
Next i
A voir également:

5 réponses

Ivan-hoe Messages postés 433 Date d'inscription dimanche 17 février 2008 Statut Membre Dernière intervention 17 octobre 2008 309
22 juil. 2008 à 11:30
Bonjour,
A l'ouverture du classeur qui contient ta macro, as-tu bien activé les macros ?
Dans la feuille active au moment où tu lances ta macro, as-tu bien des valeurs au-delà de la ligne 4 dans la colonne A ?
I.
0
Ophelie75 Messages postés 264 Date d'inscription vendredi 11 juillet 2008 Statut Membre Dernière intervention 9 juillet 2009 19
22 juil. 2008 à 11:44
bonjour, ivan hoe

Oui j'active bien les macros.

Non je n'ai pas de valeur ds la colonne A, car c'est justement là que le macro va mettre des "X"

Oph
0
Ivan-hoe Messages postés 433 Date d'inscription dimanche 17 février 2008 Statut Membre Dernière intervention 17 octobre 2008 309
22 juil. 2008 à 15:00
Alors il y a peut-être un souci à ce niveau-là :
For i = 4 To Cells(Rows.Count, 1).End(xlUp).Row

Si tu n'as pas de valeur dans la colonne A de la feuille active, alors Cells(Rows.Count, 1).End(xlUp).Row renvoie 1 et ta boucle For Next est interrompue tout de suite. A moins de préciser Step -1, tu ne peux pas avoir une borne fin inférieure à ta borne début.
Tu n'es peut-être pas sur la bonne feuille quand tu lances ta macro.
Quelle es la feuille dans laquelle tu comptes le nombre de lignes de 4 jusqu'à la fin ?
I.
0
Ophelie75 Messages postés 264 Date d'inscription vendredi 11 juillet 2008 Statut Membre Dernière intervention 9 juillet 2009 19
22 juil. 2008 à 22:48
MErci de ta réponse Ivan hoe,

Effectivement, j'ai modifié cette ligne en remplacant "Cells(Rows.Count, 1).End(xlUp).Row" par le nombre exact de lignes de ma feuille (1766).

Et la surprise, ca marche!!!

Mais j'aimerais vraiment que tu m'expliques en language "debutant" ce que tu expose au dessus... ce la m'interesse de savoir...

Merci en tout cas Ivan hoe!

Ophé
0

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

Posez votre question
Ivan-hoe Messages postés 433 Date d'inscription dimanche 17 février 2008 Statut Membre Dernière intervention 17 octobre 2008 309
23 juil. 2008 à 08:45
Salut Ophé !
même débutante, tu as dû comprendre que
Cells(Rows.Count, 1).End(xlUp).Row

te donne le numéro de la dernière ligne qui contient une valeur, dans la colonne A (la colonne 1)

Si tu n'as que des cellules vides dans ta colonne A, alors cette expression te donne 1.
Donc, c'est comme si tu écrivais
For i = 4 To 1

Tu fais une boucle avec i commençant à 4, incrémenté de +1 à chaque tour et qui se termine à 1. Ce n'est pas très logique, n'est-ce pas ?
Du coup, ton programme passe directement à la ligne de code après Next i et rien ne se passe.

Si ta macro a marché avec d'autres fichiers, c'est que la colonne A de la feuille active n'était pas vide au moment de l'exécution.
I.
0
Ophelie75 Messages postés 264 Date d'inscription vendredi 11 juillet 2008 Statut Membre Dernière intervention 9 juillet 2009 19
23 juil. 2008 à 17:11
d'accord,

merci pour l'explication ivan hoe!

Ophelie
0