[VBA] Emplacement code vba
Résolu/Fermé
Skeo
-
Modifié par Skeo le 4/05/2010 à 08:29
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 4 mai 2010 à 16:00
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 4 mai 2010 à 16:00
A voir également:
- [VBA] Emplacement code vba
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
- Code gta 4 ps4 - Guide
2 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
Modifié par pijaku le 4/05/2010 à 09:04
Modifié par pijaku le 4/05/2010 à 09:04
Salut skeo,
Ce que tu veux c'est que ton code s'exécute automatiquement, lorsque quelque chose se passe sur ta feuille. On parle donc ici d'évènement. Tu en as plusieurs qui permettent le déclenchement de macro.
Pour les trouver :
clic droit sur l'onglet de ta feuille concernée/visualiser le code, Visual Basic s'ouvre sur la feuille concernée. En haut 2 menus déroulants :
1- général : ici tu indiques ce qui est concerné par l'évènement. Dans ton cas choisir : Worksheet
2- déclarations : ici tu trouveras tout les évènements liés à l'objet "worksheet".
A toi de choisir.
Pour plus de facilité, je t'en donne 2 mais tu pourras facilement tester les autres :
1- SelectionChange :
2- Activate :
Déclenche le code à chaque fois que ta feuille devient la feuille active.
Exercice pour te familiariser avec ces évènements :
Prends une macro toute simple comme :
et teste tous les évènements.
Bon courage
Cordialement,
-- Tout problème à sa solution. S'il n'y a pas de solution, ou est le problème? --
Ce que tu veux c'est que ton code s'exécute automatiquement, lorsque quelque chose se passe sur ta feuille. On parle donc ici d'évènement. Tu en as plusieurs qui permettent le déclenchement de macro.
Pour les trouver :
clic droit sur l'onglet de ta feuille concernée/visualiser le code, Visual Basic s'ouvre sur la feuille concernée. En haut 2 menus déroulants :
1- général : ici tu indiques ce qui est concerné par l'évènement. Dans ton cas choisir : Worksheet
2- déclarations : ici tu trouveras tout les évènements liés à l'objet "worksheet".
A toi de choisir.
Pour plus de facilité, je t'en donne 2 mais tu pourras facilement tester les autres :
1- SelectionChange :
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'place ton code ici End SubTe permet de "déclencher" ton code à chaque fois que... la sélection change
2- Activate :
Private Sub Worksheet_Activate() 'place ton code ici End Sub
Déclenche le code à chaque fois que ta feuille devient la feuille active.
Exercice pour te familiariser avec ces évènements :
Prends une macro toute simple comme :
If [A1] = "" Then [A1] = 1 Else [A1] = "" End If
et teste tous les évènements.
Bon courage
Cordialement,
-- Tout problème à sa solution. S'il n'y a pas de solution, ou est le problème? --
Merci de ta réponse je vais essayer ça tout de suite.
J'étais justement en train de parcourir cette page: https://silkyroad.developpez.com/vba/fonctions/ . Je n'y avais pas encore trouvé la réponse mais je savais bien que j'étais sur la bonne voie! Persévérer et chercher par soit même à toujours du bon même si un petit coup de main de temps en temps n'est pas de refus! ;p Mais ça ne m'empêche pas de creuser ce tuto (qui est d'ailleurs de très bonne qualité)
J'essaye ça tout de suite et je te tiens au courant.
J'étais justement en train de parcourir cette page: https://silkyroad.developpez.com/vba/fonctions/ . Je n'y avais pas encore trouvé la réponse mais je savais bien que j'étais sur la bonne voie! Persévérer et chercher par soit même à toujours du bon même si un petit coup de main de temps en temps n'est pas de refus! ;p Mais ça ne m'empêche pas de creuser ce tuto (qui est d'ailleurs de très bonne qualité)
J'essaye ça tout de suite et je te tiens au courant.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
4 mai 2010 à 09:18
4 mai 2010 à 09:18
remarque que je ne t'ai pas donné la réponse "toute crue" pour te laisser un peu chercher. Tu te familiarisera davantage avec la bête en regardant cela par toi même.
C'est en buchant qu'on devient bucheron...
C'est en buchant qu'on devient bucheron...
Mais c'est bien mieux comme ça je trouve!!! Il y a trois semaines j'avais jamais fait de vba mais à force de chercher je suis en passe de réussir à faire un petit programme pour gérer le planning de ma boite et honnêtement je suis content de moi c'est pas mal du tout je trouve en toute modestie. Bon je ne suis pas programmeur et l'informatique n'est pas mon métier alors à mon échelle c'est bien. Et le pire c'est que si on m'avais tout filé tout cuit je serais bien incapable de recommencer et je n'aurai rien appris ce qui n'est pas le cas. C'est la satisfaction de la tache accomplie
J'aurais cependant une question:
Je ne saisis pas vraiment le contenu de la seconde liste déroulante... Par exemple SelectionChange fait référence à quelle sélection?
En tout cas ça marche très bien mais peut tu me dire pourquoi (parce que malgré mes efforts je ne trouve pas) la ligne ne s'efface qu'une fois qu'on sélectionne une autre cellule puis qu'on re-sélectionne celle où il est inscrit "supprimer". Et pourquoi le numéro de commande et le fournisseur ne marche que pour la première ligne aurais-je fait une boulette dans le code?
Merci encore
J'aurais cependant une question:
Je ne saisis pas vraiment le contenu de la seconde liste déroulante... Par exemple SelectionChange fait référence à quelle sélection?
En tout cas ça marche très bien mais peut tu me dire pourquoi (parce que malgré mes efforts je ne trouve pas) la ligne ne s'efface qu'une fois qu'on sélectionne une autre cellule puis qu'on re-sélectionne celle où il est inscrit "supprimer". Et pourquoi le numéro de commande et le fournisseur ne marche que pour la première ligne aurais-je fait une boulette dans le code?
Merci encore
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
4 mai 2010 à 10:06
4 mai 2010 à 10:06
1- pourquoi la ligne ne s'efface qu'une fois qu'on sélectionne une autre cellule puis qu'on re-sélectionne celle où il est inscrit "supprimer". C'est le principe même de SelectionChange... Tu dois avoir les 2 critères : la cellule active doit changer ET elle doit contenir "supprimer"
2- Et pourquoi le numéro de commande et le fournisseur ne marche que pour la première ligne Ben même réponse... Si activecell différent de "supprimer" Exit Sub.
Si j'ai bien compris ce que tu souhaites faire, remplace tes 2 : Else: Exit Sub par End If. Teste tu verras.
2- Et pourquoi le numéro de commande et le fournisseur ne marche que pour la première ligne Ben même réponse... Si activecell différent de "supprimer" Exit Sub.
Si j'ai bien compris ce que tu souhaites faire, remplace tes 2 : Else: Exit Sub par End If. Teste tu verras.
1- Y a-t-il alors un moyen de supprimer la ligne dès que "supprimer" est dans la cellule, c'est à dire sans que l'on est à sélectionner une autre cellule puis revenir sur "supprimer". En fait mon but est de choisir parmi une liste de choix déroulant une option et si "supprimer" est sélectionné alors supprimer sans plus d'opération (hormis la msgbox).
2- Même résultat avec les end if. Je souhaiterais "simplement" que avant de supprimer on puisse dans le cas d'une fausse manoeuvre annuler l'opération avant qu'il n soit trop tard et pour plus de précision il faut que j'affiche le fournisseur et le numéro de commande que l'opérateur a choisi de supprimer pour confirmer cette action.
2- Même résultat avec les end if. Je souhaiterais "simplement" que avant de supprimer on puisse dans le cas d'une fausse manoeuvre annuler l'opération avant qu'il n soit trop tard et pour plus de précision il faut que j'affiche le fournisseur et le numéro de commande que l'opérateur a choisi de supprimer pour confirmer cette action.