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 :

probleme selection feuille


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2011
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 46
    Par défaut probleme selection feuille
    Bonjour,

    j'ai un petit soucis, surement pas grand chose mais la je seche.

    Dans ma macro, je demande par le biais d'une inputbox le numéro du mois.
    le resultat est stocké dans "mois1"
    j'ai des feuilles nommées 1,2,3 ...12 pour les 12 mois.
    Je veux allez recupérer des données dans ces feuilles pour les copié dans une autre et la j'ai un message d'erreur disant l'indice n'appartient pas a la selection

    Je vous mets une partie du code

    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
     
    Sub génération_bilan()
    Dim mois1 As String
     
    mois1 = InputBox("quel mois?(en chiffre)")
     
    Call mdc
     
    End Sub
     
    Sub mdc()
     
    Sheets("mdc").Activate
    Application.ScreenUpdating = False
     
    For a = 32 To 35 Step 1
     
     
    'tete
    Cells(11, 2) = Worksheets(mois1).Cells(a, 28)
    Cells(12, 2) = Worksheets(mois1).Cells(a, 39)
    Cells(13, 2) = Worksheets(mois1).Cells(a, 50)
     
    'enregistrer
    Range("A1:K38").Select
        ChDir "C:\Users\LFRBOD3\Desktop"
        Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
            "V:\prévention-environnement\ACCIDENT DU TRAVAIL\STATS AT\communication sections\" & Cells(1, 1).Value & "__" & mois & ".pdf", Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
            False
     
    Next a
     
     
     
     
     
     
     
    End Sub

    merci d'avance

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonsoir,
    La variable mois1 est inconnue dans ta procédure mdc.
    Soit tu la déclares au niveau du module soit tu prévois un argument à ta procédure mdc permettant de transmettre à cette dernière la valeur de mois1
    Petit exemple pour la solution 2
    Je te conseille vivement de faire précéder ton code par Option Explicit, tu aurais tout de suite vu d'où venait ton problème.
    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
    Option Explicit
    Sub génération_bilan()
     Dim mois1 As String
     mois1 = InputBox("quel mois?(en chiffre)")
     Call mdc(mois1)
    End Sub
    Sub mdc(nMois)
     Sheets("mdc").Activate
     Application.ScreenUpdating = False
     For a = 32 To 35 Step 1
      ' Tete
      Cells(11, 2) = Worksheets(nMois).Cells(a, 28)
      Cells(12, 2) = Worksheets(nMois).Cells(a, 39)
      Cells(13, 2) = Worksheets(nMois).Cells(a, 50)
      ' Enregistrer
      Range("A1:K38").Select
          ChDir "C:\Users\LFRBOD3\Desktop"
          Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
              "V:\prévention-environnement\ACCIDENT DU TRAVAIL\STATS AT\communication sections\" & Cells(1, 1).Value & "__" & mois & ".pdf", Quality:=xlQualityStandard, _
              IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
              False
     Next a
    End Sub
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre averti
    Inscrit en
    Avril 2011
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 46
    Par défaut
    merci pour ta rapidité et surtout ton efficacité.

    maintenant, pour bien comprendre encore une chose.

    comment je fais si j'ai plusieurs variable à transmettre?

    et pourquoi passer de :
    Call mdc(mois1)
    à
    Sub mdc(nMois)

    Pourquoi ne garde ton pas mois1 apres sub mdc?

    merci

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Par défaut
    Bonsoir,

    Pourquoi ne garde ton pas mois1 apres sub mdc?
    C'est un problème de portée de variable.
    Une variable déclarée dans une fonction n'existe que dans cette fonction.
    Les limites de fonction sont repérées par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sub <nom de fonction>(<paramètres>)
    et
    Donc mois1 n'existe que dans génération_bilan().
    Et nMois n'existe que dans mdc()
    >>ici<< voir § Les niveaux de variables

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

Discussions similaires

  1. [Struts] Probleme include feuille de style dans JSP
    Par r_m_i_8 dans le forum Struts 1
    Réponses: 2
    Dernier message: 13/03/2006, 14h06
  2. [HTML][css] probleme de feuille de style
    Par graphicsxp dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 22/02/2006, 17h59
  3. probleme select in
    Par aviaur dans le forum Langage SQL
    Réponses: 2
    Dernier message: 21/09/2005, 10h55
  4. [html][javascript] probleme <select> affichage
    Par maysa dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 29/09/2004, 15h17
  5. [VBA-E] Sélection feuilles sous excel
    Par Mystic eyes dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/02/2004, 13h27

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