Affecter un numéro de cellule dans une variable

Résolu
Bonjour,
Pour faire evoluer ma macro qui génère l'écriture de commentaires, j'aurai besoin de connaitre comment affecter un numéro de cellule dans une variable.
En effet cela donnerait ceci :
Si le curseur est sur la cellule C3, je clique sur le bouton qui envoie ma macro : qui va me donner ceci :
Si "curseur sur la cellule C3" then 'planning service ménage
lili=8
si "curseur sur la cellule C376" then 'planning service entretien extérieur
lili=365
end if
end if
Cela me permet de faire démarrer mes boucles à un endroit précis de ma feuille. Comme j'ai 5 services, cela m'évite de faire 5 macros.
Merci par avance
CDL
Robby

2 réponses

  1. Bonjour,

    Je pense que tu pourrais utiliser Selection_Change de la feuille de calcul

    Gilles
    1. Bonjour Robby,

      Je te propose ce code VBA :

      
      Option Explicit
      
      Sub Essai()
        Dim lili As Long
        Select Case ActiveCell.Address
          ' planning service ménage
          Case Is = "$C$3": lili = 8
          ' planning service entretien extérieur
          Case Is = "$C$376": lili = 365
        End Select
      End Sub
      
      

      Cordialement.
       
      1. Génial..
        Merci Lucien
        J'ai cherché dans différents sujets qui se rapportaient à ce que je voulais faire, mais jamais trouvé. Ton code est simple et cela fonctionne.
        Grand merci à Toi
        CDL
        Robby
      2. RE BONSOIR LUCIEN
        Cela fonctionne tout à fait comme je voulais. Juste un petit soucis de gestion du clic.
        Comme puis je gérer, le fait que la cellule sélectionnée ne soit pas la bonne.
        Par exemple, si la personne par mégarde ne clic pas sur la cellule $c$3 ou $c$376 la macro plante. Il faudrait une gestion que si le clic n'est pas au bon endroit un message apparaisse 'blabla" et retourne au debut par un ok.
        merci par avance
        Robby
      3. @robbybasch 
        @Robby

        Vu que le code est exécuté suite au clic sur un bouton, je ne pense pas que
        ce soit approprié de « retourner au début » : l'utilisateur clique sur le bouton,
        puis : a) la cellule active n'était pas bonne => affiche un message d'erreur
        et s'arrête ; b) sinon, ça fait le traitement nécessaire.

        Pour le cas a) : ça s'est donc arrêté, et aucun traitement n'a été fait ;
        ensuite, à l'utilisateur de se placer sur une bonne cellule (selon le
        service), puis de cliquer de nouveau sur le bouton Planning ;
        c'est cela qui équivaut à ton « retour au début ».  ;)

        ==========================

        Fichier Excel 2007 : https://mon-partage.fr/f/iMcPbLYO/

        À l'ouverture du classeur Excel, la cellule active est C3 ;
        clic sur le bouton Planning => ça affiche la valeur de lili : 8

        ----------------------------------------------

        Sélectionne C5 ; clic sur le même bouton => message :
        "Vous n'êtes pas sur la bonne cellule." ; clic sur OK =>
        ensuite, ça affiche la valeur de lili : 0

        En effet, si la cellule active n'est aucune des 5 bonnes cellules
        (celles requises pour les 5 services), lili garde sa valeur initiale
        de 0 (définie implicitement par : Dim lili As Long).

        ==========================

        À toi d'ajouter le code VBA pour la suite, juste après
        End Select et avant End Sub ; exemple :

        
        Option Explicit
        
        Private Sub Planning_Click()
          Dim lili As Long
          Select Case ActiveCell.Address     ' planning du service
            Case Is = "$C$3": lili = 8       ' 1 : ménage
            Case Is = "$C$376": lili = 365   ' 2 : entretien extérieur
            Case Is = "$C$386": lili = 380   ' 3 : buanderie
            Case Is = "$C$396": lili = 390   ' 4 : garage
            Case Is = "$C$406": lili = 400   ' 5 : espaces verts
            Case Else:
              MsgBox "Vous n'êtes pas placé sur la bonne cellule.", 48, "Planning"
          End Select
          MsgBox "lili = " & lili, 64, "Planning"   ' ligne juste pour démo, à enlever
          If lili = 0 Then Exit Sub   ' sortie si lili = 0 (car pas de service adéquat)
          '
          ' Placer ici la suite du traitement à effectuer,
          ' qui utilisera lili (à sa bonne valeur : > 0).
          ' 
          ' 
          ' 
          '
        End Sub
        
        

        ⚠  Les services 3 à 5 sont inventés ; à toi de mettre les bonnes
            adresses de cellules et les valeurs de lili correspondantes.

        ⚠  Remarque bien le test sur la valeur 0 de lili.
         
      4. Bonjour Lucien.
        je viens de transcrire ce dont tu as écrit. Avec quelques modifs qui vont avec la macro, c'est................................. PARFAITEMENT PARFAIT. Milles mercis.
        J'avance petit à petit dans ma réalisation...
        CDL
        Robby