rendre une macro récurrente à chaque modification

  • Initiateur de la discussion Initiateur de la discussion louloulapoisse
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

L

louloulapoisse

Guest
Bonjour à tous

Voila j'ai un petit bout de code qui fonctionne quand je le lance ( petit bouton play) sur VBA.
Mais une fois sur exel il ne s’exécute plus ( quand je fait le changement en A3 nommé batiment).
Code:
'selection des informations
Private Sub infobat()
Dim batiment As Integer, site As String
batiment = Range("A3")

If batiment = 135 Then
    site = "sac"
    Sheets("Des_Bat").Activate
ElseIf batiment = 534 Then
    site = "partout"
    Sheets("Des_Bat").Activate

Else
    site = "non connue"
    Sheets("Des_Bat").Activate
End If

Range("C4") = site
End Sub

D'une manière générale je reste systématiquement bloqué sur comment appliquer mes codes sans passé par VBA.
A savoir que je sais pas bien ou mettre quoi ... Pages 1/2/3 ou modules.

ha oui zai oublié de dir que j'était un bleu et que je trouvais pas de réponses sur les forums car je n'arrive pas a sélectionner des mot clés en lien à mon problème.

Mesdames et messieurs merci d'avance!
 
Re : rendre une macro récurrente à chaque modification

Hello et bienvenu sur ce forum

pour commencer, il faudrait que tu postes ton fichier exemple (exempt de toute donnée confidentielle)
ensuite, on va pouvoir t'aider en travaillant directment dessus
j'ai ma petite idée sur ton souci, à confirmer par toi

tu souhaites que ta macro se lance dès que tu changes le contenu de la cellule A3: pour cela, il faut utiliser l'évènement
worksheet_change()

si ta macro doit etre lancée par un bouton sur la feuille excel, dans ce cas, tu utilises un module "standard' dans lequel tu colles ton code
 
Re : rendre une macro récurrente à chaque modification

Re-bonjour à vous deux, croisés sur des fils différents,

Ce thème-ci est vraiment différent de celui de ce matin??

Et si Vba ne t'est pas encore familier, pourquoi ne pas utiliser des liens hypertextes (sur des zones de texte ou objets dessinés, par exemple)?
 
Re : rendre une macro récurrente à chaque modification

Salut Vgendron
J'ai essayé en feuille 2 de le mettre mais ca ne fonctionne plus .
je met le doc
Code:
Private Sub worksheet_change()
Dim batiment As Integer, site As String
batiment = Range("A3")

If batiment = 135 Then
    site = "sac"
    Sheets("Des_Bat").Activate
ElseIf batiment = 534 Then
    site = "partout"
    Sheets("Des_Bat").Activate

Else
    site = "non connue"
    Sheets("Des_Bat").Activate
End If

Range("C4") = site
End Sub
Les forums parlent souvent de ceci : ByVal Target As Range à mettre entre les parenthèse mais qu'est ce que ca signifie ?
 

Pièces jointes

Re : rendre une macro récurrente à chaque modification

Re-bonjour Modeste,
Ba faut bien apprendre un jour et le boulot me le demande. mais à coté de ca j'avance bien sur d'autres points!
oui en effet c'est un problème similaire mais je n'ai pas bien compris la subtilité pour que cela fonctionne.
Si je comprend bien les évènements suivent le Sub ?
Merci
 
Re : rendre une macro récurrente à chaque modification

Re

avec ce code
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'selection des informations
Dim batiment As Integer, site As String

If Target = [A3] Then
    batiment = Range("A3")
    Select Case batiment
        Case 135
            site = "sac"
        Case 534
            site = "partout"
        Case Else
            site = "non connue"
    End Select
    Range("C4") = site
End If
End Sub


le target, représente la cellule qui vient d'etre modifiée et qui donc a déclenché l'évènement change de la feuille.

ce qui permet de faire un test sur cette target:
dans ton cas.. si c'est la cellule A3 (et oui. pas besoin d'aller faire tous les tests si tu as modifié autre chose que le A3

ensuite. j'ai viré tous les sheets("Des_bat").activate.
pas besoin d'activer quelque chose qui l'est déjà
à la place de if then elseif else... tu peux utiliser un select case.. plus propre et plus facile de rajoutter des cas

voila ;-)

ah oui et bonjour Modeste.. ;-)
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour