VBA/Macro
Résolu
caillasse147
Messages postés
71
Statut
Membre
-
michel_m Messages postés 18903 Statut Contributeur -
michel_m Messages postés 18903 Statut Contributeur -
Bonjour à tous.
J'ai créé une macro sous Excel afin de faire tourner un fichier au boulot.
Or, le problème est que si je n'exécute pas cette dernière, ça ne tourne pas et lorsque je décide de l'exécuter ça fonctionne parfaitement mais par contre la macro ne tourne qu'une seule fois et même en changeant mes données de base, mes résultats restent figés.
Je ne sais pas si j'ai été clair, c'est pas évident et n'étant pas un pro d'Excel et surtout des VBA, j'aurais aimé savoir :
1) Comment faire tourner la macro automatiquement à chaque nouvelle entrée d'une valeur ?
2) Comment la faire tourner tout le temps sans avoir besoin de cliquer sur "exécuter" à chaque fois?
Ma macro actuelle est la suivante :
Sub Cellules_vides()
Dim cel As Range
For Each cel In Range("A10:A69")
If cel = "" Then
cel.EntireRow.Hidden = True
End If
Next
End Sub
Merci d'avance
J'ai créé une macro sous Excel afin de faire tourner un fichier au boulot.
Or, le problème est que si je n'exécute pas cette dernière, ça ne tourne pas et lorsque je décide de l'exécuter ça fonctionne parfaitement mais par contre la macro ne tourne qu'une seule fois et même en changeant mes données de base, mes résultats restent figés.
Je ne sais pas si j'ai été clair, c'est pas évident et n'étant pas un pro d'Excel et surtout des VBA, j'aurais aimé savoir :
1) Comment faire tourner la macro automatiquement à chaque nouvelle entrée d'une valeur ?
2) Comment la faire tourner tout le temps sans avoir besoin de cliquer sur "exécuter" à chaque fois?
Ma macro actuelle est la suivante :
Sub Cellules_vides()
Dim cel As Range
For Each cel In Range("A10:A69")
If cel = "" Then
cel.EntireRow.Hidden = True
End If
Next
End Sub
Merci d'avance
A voir également:
- VBA/Macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Excel compter cellule couleur sans vba - Guide
- Macro word - Guide
7 réponses
Bonjour,
Pour cela tu mets ton code dans une macro événementielle dans ta feuille
Pour cela tu mets ton code dans une macro événementielle dans ta feuille
Private Sub Worksheet_Change(ByVal Target As Range) ' ton code End Sub
caillasse147
Messages postés
71
Statut
Membre
Merci de ta réponse mais ça ne fonctionne pas, rien n'a bougé
bonjour,
il faut faire pour ce que tu demandes
Comment faire tourner la macro automatiquement à chaque nouvelle entrée d'une valeur ?
utiliser une macro événementielle à écrire dans le module feuille de l'éditeur vba
dans ton cas c'est le changement de valeur à qui déclenche et si j'ai pigé en supprimant la valeur ?
si oui

Michel
il faut faire pour ce que tu demandes
Comment faire tourner la macro automatiquement à chaque nouvelle entrée d'une valeur ?
utiliser une macro événementielle à écrire dans le module feuille de l'éditeur vba
dans ton cas c'est le changement de valeur à qui déclenche et si j'ai pigé en supprimant la valeur ?
si oui
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
'zone d'action:range A20:A69; target:cellule qui a changée
'si l 'intersection de target et de la zone n'est pas rien et si target est vide alors
If Not Intersect(Target, Range("A20:A69")) Is Nothing And IsEmpty(Target) Then Rows(Target.Row).Hidden = True
End If
End Sub

Michel
Je n'ai pas réussi à trouver solution à mon problème,
Je pense que je n'écris pas mon code au bon endroit.....
Je pense que je n'écris pas mon code au bon endroit.....
Bonjour caillasse147, bonjour le forum,
Quand tu es sur ta feuille de calcul Excel, fais < Alt >< F11 > pour aller
sur Microsoft Visual Basic. À gauche, tu peux voir une ligne avec :
« VBAProject (nom de ton classeur) » ; dessous, il y a cette ligne :
« Microsoft Excel Objets » ; dessous encore, il y a la liste des feuilles
du classeur et ThisWorkbook ; clic sur Feuil1 ; < Entrée > : la page
blanche qui s'est ouverte est la feuille de code de Feuil1 : c'est là
que tu dois mettre la Sub Worksheet_Change(ByVal Target As Range).
Cordialement. :)
J'ai essayé avec l'astuce de chacun d'entre vous et même la dernière, celle d'albkan et ça ne fonctionne pas je pense que je suis mal exprimé, c'est même certain.
En fait j'ai un onglet qui comprend 3 colonnes dont deux qui ne bougent jamais qui sont "expéditeurs" et "destinataire" et ensuite ma 3e colonne est celle ou je rentre mes volumes donc évidemment elle varie en fonction du chiffre ou nombre que je renseigne
Concernant le deuxième onglet, appelé "récapitulatif", j'ai mis en forme un tableur que je pourrai directement envoyer à mon client, avec une forme particulière et évidemment professionnelle.
Et justement c'est dans ce tableau que j'ai besoin de ma macro
J'ai déjà inclus des fonctions "si" pour lesquelles si un volume est renseigné dans le premier onglet alors les 3 colonnes s'affichent et s'il n'y a pas de renseignements rien ne s'affiche.
Jusque la tout va bien et tout fonctionne parfaitement.
Mais le problème c'est que évidemment les lignes vides apparaissent dans mon second onglet même quand je n'ai pas renseigné de volumes sur le premier onglet donc j'avais trouvé un code permettant de les effacer qui fonctionne très bien mais le soucis que je rencontre c'est que pour qu'il fonctionne il faut à chaque fois que j'aille sur "développeur" pour exécuter ma macro donc j'aimerais que ça se fasse automatiquement dans un premier temps et le deuxième problème c'est que lorsque je l'exécute et bien même en modifiant les volumes ça reste intact, et les nouvelles lignes n'apparaissent plus.
Donc en fait une fois l'exécution de la macro, si par inattention j'ai oublié un de mes volumes et que je dois le rajouter bah je suis "niqué" (désolé pour l'expression) car il ne se rajoute pas dans mon tableau final....
Je pense avoir été plus clair
Et merci à tous d'essayer d'éclaircir avec moi tout cela
En fait j'ai un onglet qui comprend 3 colonnes dont deux qui ne bougent jamais qui sont "expéditeurs" et "destinataire" et ensuite ma 3e colonne est celle ou je rentre mes volumes donc évidemment elle varie en fonction du chiffre ou nombre que je renseigne
Concernant le deuxième onglet, appelé "récapitulatif", j'ai mis en forme un tableur que je pourrai directement envoyer à mon client, avec une forme particulière et évidemment professionnelle.
Et justement c'est dans ce tableau que j'ai besoin de ma macro
J'ai déjà inclus des fonctions "si" pour lesquelles si un volume est renseigné dans le premier onglet alors les 3 colonnes s'affichent et s'il n'y a pas de renseignements rien ne s'affiche.
Jusque la tout va bien et tout fonctionne parfaitement.
Mais le problème c'est que évidemment les lignes vides apparaissent dans mon second onglet même quand je n'ai pas renseigné de volumes sur le premier onglet donc j'avais trouvé un code permettant de les effacer qui fonctionne très bien mais le soucis que je rencontre c'est que pour qu'il fonctionne il faut à chaque fois que j'aille sur "développeur" pour exécuter ma macro donc j'aimerais que ça se fasse automatiquement dans un premier temps et le deuxième problème c'est que lorsque je l'exécute et bien même en modifiant les volumes ça reste intact, et les nouvelles lignes n'apparaissent plus.
Donc en fait une fois l'exécution de la macro, si par inattention j'ai oublié un de mes volumes et que je dois le rajouter bah je suis "niqué" (désolé pour l'expression) car il ne se rajoute pas dans mon tableau final....
Je pense avoir été plus clair
Et merci à tous d'essayer d'éclaircir avec moi tout cela
Pour ton message #12, tu as essayé trop vite ! Tu aurais dû attendre ma réponse :
c'est le message #15.
c'est le message #15.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
re Caillasse
mets ton classeur en pièce jointe la macro que je t'avais proposé avait été testé et fonctionnait donc en fonction de ce que tu demandais, effectivement, d'après tes derniers messages, tu t'étais mal exprimé
pour cela:
Michel
mets ton classeur en pièce jointe la macro que je t'avais proposé avait été testé et fonctionnait donc en fonction de ce que tu demandais, effectivement, d'après tes derniers messages, tu t'étais mal exprimé
pour cela:
Mettre le classeur sans données confidentielles en pièce jointe sur « mon-partage.fr »
et faire un clic droit-coller le raccourci dans votre message
Michel