Excel - je comprends pas :-(
Résolu
Ophelie75
Messages postés
264
Date d'inscription
Statut
Membre
Dernière intervention
-
Ophelie75 Messages postés 264 Date d'inscription Statut Membre Dernière intervention -
Ophelie75 Messages postés 264 Date d'inscription Statut Membre Dernière intervention -
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
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:
- Excel - je comprends pas :-(
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel moyenne - Guide
5 réponses
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.
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.
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
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
Alors il y a peut-être un souci à ce niveau-là :
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.
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.
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é
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é
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut Ophé !
même débutante, tu as dû comprendre que
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
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.
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.