IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Comment se positionner sur une feuille particulière [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 611
    Points : 359
    Points
    359
    Par défaut Comment se positionner sur une feuille particulière
    Bonjour,

    A partir d'une zone de saisie de date dans un formulaire, je souhaite récupérer le nom du mois et l'année et me positionner sur la feuille en question dans le classeur.

    Le nom de chaque feuille est constitué du nom du mois et de l'année (exemple : Septembre 13).

    Je souhaite savoir si cette feuille existe et me positionner dessus pour y renseigner des cellules.

    Merci d'avance.
    Julien.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Une solution possible

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    Sub RechercherFeuille(DateEtudiee As Date)
     
    Dim MoisEtudie As String
    Dim Continuer As Boolean
    Dim Sh As Worksheet
     
     
        Select Case Month(DateEtudiee)
           Case 1
               MoisEtudie = "Janvier " & Mid(Year(DateEtudiee), 3, 2)
           Case 2
               MoisEtudie = "Février " & Mid(Year(DateEtudiee), 3, 2)
           Case 3
               MoisEtudie = "Mars " & Mid(Year(DateEtudiee), 3, 2)
           Case 4
              MoisEtudie = "Avril " & Mid(Year(DateEtudiee), 3, 2)
           Case 5
              MoisEtudie = "Mai " & Mid(Year(DateEtudiee), 3, 2)
           Case 6
              MoisEtudie = "Juin " & Mid(Year(DateEtudiee), 3, 2)
           Case 7
              MoisEtudie = "Juillet " & Mid(Year(DateEtudiee), 3, 2)
           Case 8
              MoisEtudie = "Août " & Mid(Year(DateEtudiee), 3, 2)
           Case 9
              MoisEtudie = "Septembre " & Mid(Year(DateEtudiee), 3, 2)
           Case 10
              MoisEtudie = "Octobre " & Mid(Year(DateEtudiee), 3, 2)
           Case 11
              MoisEtudie = "Novembre " & Mid(Year(DateEtudiee), 3, 2)
           Case 12
              MoisEtudie = "Décembre " & Mid(Year(DateEtudiee), 3, 2)
        End Select
     
        Continuer = True
     
        For Each Sh In Sheets
            Select Case Sh.Name
                Case MoisEtudie
                     Continuer = False
            End Select
        Next Sh
     
        If Continuer = False Then
            Sheets(MoisEtudie).Activate
           ' MsgBox ("Date étudiée : " & DateEtudiee & " - Mois trouvé : " & ActiveSheet.Name)
        'Else
           ' MsgBox ("Il n'existe pas de feuille pour la date étudiée !")
        End If
     
    End Sub
    Pour tester :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub TestRechercherFeuille()
     
        RechercherFeuille ActiveCell
     
    End Sub
    Cordialement.
    Dernière modification par AlainTech ; 08/11/2013 à 06h36. Motif: Balises [code], pas [quote]

  3. #3
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Bonjour,

    il y a plus simple : si le texte est une date valide (IsDate),

    le formater comme un nom de feuille (Format et Application.Proper)

    puis en testant si le nom existe via ma fonction ExistSheet déjà publiée sur ce site, une petite recherche et voilà !

    Le tout en quatre lignes de code (hors ExistSheet) …

  4. #4
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2003
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2003
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Salut,

    voici un code simple en supposant que la cellule à saisir se trouve en A1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Sub test()
    Dim r As Range
    Set r = Range("A1")
    r.NumberFormat = "mmmm yy"
    On Error Resume Next
    Sheets(r.Text).Activate
    If Err.Number <> 0 Then
      MsgBox "Feuille """ & r.Text & """ non trouvé"
    End If
    End Sub
    Lian

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/01/2015, 18h25
  2. comment se positionner sur une ligne de table mysql ?
    Par pas30 dans le forum Requêtes
    Réponses: 3
    Dernier message: 13/01/2007, 13h43
  3. Réponses: 7
    Dernier message: 25/08/2006, 17h31
  4. Se positionner sur une feuille precise
    Par mosquitout dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 12/08/2006, 15h37
  5. Réponses: 8
    Dernier message: 15/05/2006, 14h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo