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 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.
     
    0
    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
      0
    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
      0
    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.
       
      0
    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
      0
  2. Bonjour,

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

    Gilles
    0