VBA pour selection cellule selon cellule active

Résolu
Bonjour,

dans mon fichier joint en cliquant sur un même bouton de commande je souhaite accéder à la cellule date de la feuille "Tache" qui correspond à la cellule active de la feuille "Calendrier".

j'ai fait un peu de bricolage, vous pourrez le constater dans les colonnes janvier / fevrier et mars.

je voudrais que cela soit plus propre. Votre aide me sera précieuse.

merci d'avance.

3 réponses

  1. En fait je ne vois pas comment insérer mon fichier.
    1. Modérateur
      Bonjour takita,
      Pour transmettre un fichier, il faut passer par un site de pièce jointe tel que cjoint.com

      Va sur ce site : https://www.cjoint.com/
      Clic sur parcourir,
      Cherche ton fichier,
      clic sur ouvrir,
      Clic sur "Créer le lien cjoint",
      Copier le lien,
      Revenir ici le coller dans une réponse...
    2. Bonjour,

      Je ne veux pas être embêtante,

      j'attends toujours des réponses si possible évidemment.
    3. Modérateur
      @takitaBonjour,

      Tu n'es pas embêtante.
      Mais :
      Par choix de son publicateur ou par opération de purge, ce document n'est plus hébergé par CJoint.

      Donc, le fichier n'est plus accessible.
    4. désolée pour l'attente. j'ai perdu un proche trop proche et j'étais dans l'impossibilité de poursuivre.
      ci-joint le lien
      https://www.cjoint.com/c/EAipDhbC35c
      merci pour vos réponses.
  2. Modérateur
    Bonjour,

    Une macro de ce genre devrait correspondre à tes besoins :
    
    Sub getTacheFromSelectedDate()
    Dim colonne As Long
        colonne = ActiveCell.Column
    Dim ligne As Long
        ligne = ActiveCell.Row
        
    Select Case colonne
     Case 1, 2, 3
      'Janvier
      LigneColTache = 4
     Case 5, 6, 7
      'Février
      LigneColTache = 8
     Case 9, 10, 11
      'Février
      LigneColTache = 12
    '-----------------
    ' A completer avec les autres mois...
    '---------------
    
    End Select
    
      Sheets("TACHES").Activate
      Sheets("TACHES").Cells(LigneColTache, ligne - 3).Select
    
    End Sub
    


    Nb: j'ai fait pour Janvier/février/mars.. je te laisse faire pour les autres...
    Il suffit d'ajouter, pour chaque moi, un CASE (suivit des numéros de colonne correspondante dans ton calendrier...)
    et de mettre la variable LigneColTache en fonction de la "ligne" à afficher dans l'onglet Taches
    1. Merci Jordane45 pour ta réponse qui est parfaitement ce que je recherche. Toutefois à partir du mois de juillet j'ai un petit problème. J'ai donc encore besoin de ton aide.

      https://www.cjoint.com/c/EAiuuqzzQyv
  3. Modérateur
    Modifie le code comme ceci :

    Sub getTacheFromSelectedDate()
    Dim colonne As Long
        colonne = ActiveCell.Column
    Dim ligne As Long
        ligne = ActiveCell.Row
        
    Select Case colonne
     Case 1, 2, 3
      If ligne < 34 Then
       'Janvier
        LigneColTache = 4
      Else
       'Juillet
       LigneColTache = 28
      End If
     Case 5, 6, 7
      If ligne < 34 Then
       'Février
        LigneColTache = 8
      Else
       'Aout
       LigneColTache = 32
      End If
     Case 9, 10, 11
      If ligne < 34 Then
       'Mars
        LigneColTache = 12
      Else
       'Septembre
       LigneColTache = 36
      End If
     Case 13, 14, 15
     If ligne < 34 Then
       'Avril
      LigneColTache = 16
      Else
       'Octobre
       LigneColTache = 36
      End If
     Case 17, 18, 19
     If ligne < 34 Then
       'Mai
      LigneColTache = 20
      Else
       'Novembre
       LigneColTache = 40
      End If
     Case 21, 22, 23
      If ligne < 34 Then
       'Juin
      LigneColTache = 24
      Else
       'Décembre
       LigneColTache = 44
      End If
    End Select
    
    ' on regarde à Quelle ligne on se trouve dans le classeur
    ' pour déterminer la date...
    If ligne < 34 Then
        ligneDeb = ligne - 3
    Else
        ligneDeb = ligne - 37
    End If
      Sheets("TACHES").Activate
      Sheets("TACHES").Cells(LigneColTache, ligneDeb).Select
    
    End Sub
    
    

    1. Merci encore Jordane45. J'ai rectifié et tout fonctionne à merveille. Maintenant est-il possible qu'à l'ouverture du fichier que la cellule active soit celle de la date du jour ?
      https://www.cjoint.com/c/EAjpnnoox3o
    2. Modérateur
      @takita

      Maintenant est-il possible qu'à l'ouverture du fichier que la cellule active soit celle de la date du jour ?


      Oui.. mais là .. c'est une nouvelle Question...
      Donc je t'invite à mettre cette présente discussion en résolu .. puis à ouvrir une nouvelle discussion pour exposer cette nouvelle demande.
    3. très bien.