VBA/Macro
Résolu/Fermé
caillasse147
Messages postés
71
Date d'inscription
lundi 26 décembre 2016
Statut
Membre
Dernière intervention
28 juin 2017
-
26 déc. 2016 à 09:01
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 27 déc. 2016 à 10:23
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 27 déc. 2016 à 10:23
A voir également:
- VBA/Macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
- Macro logiciel - Télécharger - Organisation
- Macro recorder - Télécharger - Confidentialité
- Convertir chiffre en lettre excel sans macro ✓ - Forum Excel
7 réponses
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 708
26 déc. 2016 à 09:09
26 déc. 2016 à 09:09
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
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié par michel_m le 26/12/2016 à 09:29
Modifié par michel_m le 26/12/2016 à 09:29
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
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
26 déc. 2016 à 09:42
26 déc. 2016 à 09:42
Caillasse, je sens le paté ?
caillasse147
Messages postés
71
Date d'inscription
lundi 26 décembre 2016
Statut
Membre
Dernière intervention
28 juin 2017
>
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
26 déc. 2016 à 09:46
26 déc. 2016 à 09:46
Lol Non pourquoi?
caillasse147
Messages postés
71
Date d'inscription
lundi 26 décembre 2016
Statut
Membre
Dernière intervention
28 juin 2017
26 déc. 2016 à 09:43
26 déc. 2016 à 09:43
oui oui c'est exactement cela, or je n'ai pas compris comment saisir ton code ci-dessus,
Merci d'avance
Merci d'avance
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
>
caillasse147
Messages postés
71
Date d'inscription
lundi 26 décembre 2016
Statut
Membre
Dernière intervention
28 juin 2017
26 déc. 2016 à 09:46
26 déc. 2016 à 09:46
Caillasse, je sens le paté ?
oui oui c'est exactement cela
merci
oui oui c'est exactement cela
merci
caillasse147
Messages postés
71
Date d'inscription
lundi 26 décembre 2016
Statut
Membre
Dernière intervention
28 juin 2017
26 déc. 2016 à 10:37
26 déc. 2016 à 10:37
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. :)
caillasse147
Messages postés
71
Date d'inscription
lundi 26 décembre 2016
Statut
Membre
Dernière intervention
28 juin 2017
>
Utilisateur anonyme
26 déc. 2016 à 11:08
26 déc. 2016 à 11:08
Bonjour,
C'est évidemment ce que je faisais mais le code ne change rien dans mon tableau, malheureusement...
C'est évidemment ce que je faisais mais le code ne change rien dans mon tableau, malheureusement...
Utilisateur anonyme
>
caillasse147
Messages postés
71
Date d'inscription
lundi 26 décembre 2016
Statut
Membre
Dernière intervention
28 juin 2017
26 déc. 2016 à 11:15
26 déc. 2016 à 11:15
Essaye avec : Private Sub Worksheet_SelectionChange(ByVal Target As Range)
au lieu de : Private Sub Worksheet_Change(ByVal Target As Range)
au lieu de : Private Sub Worksheet_Change(ByVal Target As Range)
caillasse147
Messages postés
71
Date d'inscription
lundi 26 décembre 2016
Statut
Membre
Dernière intervention
28 juin 2017
26 déc. 2016 à 11:17
26 déc. 2016 à 11:17
Donc je met ça au début seulement et ensuite je mets mon code exactement comme je l'avais écrit au début on est d'accord?
Merci!!!!!
Merci!!!!!
caillasse147
Messages postés
71
Date d'inscription
lundi 26 décembre 2016
Statut
Membre
Dernière intervention
28 juin 2017
26 déc. 2016 à 11:21
26 déc. 2016 à 11:21
Non ça change toujours rien
caillasse147
Messages postés
71
Date d'inscription
lundi 26 décembre 2016
Statut
Membre
Dernière intervention
28 juin 2017
26 déc. 2016 à 11:30
26 déc. 2016 à 11:30
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
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié par michel_m le 26/12/2016 à 14:03
Modifié par michel_m le 26/12/2016 à 14:03
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
caillasse147
Messages postés
71
Date d'inscription
lundi 26 décembre 2016
Statut
Membre
Dernière intervention
28 juin 2017
27 déc. 2016 à 08:16
27 déc. 2016 à 08:16
Bonjour à tous, mon problème est déjà résolu grâce à Michel et Albkan ici présents, ils ont fait un gros travail sur mon fichier et je les en remercie.
Je posterai ci-dessous les codes apportés par Michel qui ont pu m'aider à solutionner mon problème,
Merci encore à vous deux,
Bonne journée à tous,
Je posterai ci-dessous les codes apportés par Michel qui ont pu m'aider à solutionner mon problème,
Merci encore à vous deux,
Bonne journée à tous,
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié par michel_m le 27/12/2016 à 11:06
Modifié par michel_m le 27/12/2016 à 11:06
erreur d'envoi, excusez moi
Michel
Michel
26 déc. 2016 à 09:38