Signaler

Affecter un numéro de cellule dans une variable [Résolu]

Posez votre question robbybasch 86Messages postés lundi 14 juillet 2014Date d'inscription 18 juillet 2017 Dernière intervention - Dernière réponse le 16 juil. 2017 à 10:23 par robbybasch
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


Utile
+0
plus moins
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.
 
robbybasch 86Messages postés lundi 14 juillet 2014Date d'inscription 18 juillet 2017 Dernière intervention - 15 juil. 2017 à 21:25
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
Répondre
robbybasch 86Messages postés lundi 14 juillet 2014Date d'inscription 18 juillet 2017 Dernière intervention - 15 juil. 2017 à 22:51
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
Répondre
lucien- 16 juil. 2017 à 03:57
 
@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.
 
Répondre
robbybasch 86Messages postés lundi 14 juillet 2014Date d'inscription 18 juillet 2017 Dernière intervention - 16 juil. 2017 à 10:23
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
Répondre
Donnez votre avis
Utile
+0
plus moins
Bonjour,

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

Gilles
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !