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 :

Sélectionner feuille sauf feuille non requis [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 322
    Par défaut Sélectionner feuille sauf feuille non requis
    Bonjour à tous.

    à l'aide ce forum, j'ai créé ce 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
    CeFichier = ActiveWorkbook.Name
     
    Fichier = Application.GetOpenFilename("Excel Files (*.xls), *.xls")
    If Fichier <> False Then
        Set Wk = Workbooks.Open(Fichier)
     
    End If
    Worksheets("Taux").Visible = -1
    Worksheets("DeBase").Visible = -1
    LautreFichier = ActiveWorkbook.Name
     
    Worksheets("Taux").Visible = -1
     
     Sheets("gestion").Select
     Range("A1").Select
     Selection.Copy
     Windows(CeFichier).Activate
     Sheets("gestion").Select
     Range("A1").Select
     Selection.pastespecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
     
            Windows(LautreFichier).Activate
     
     
     
    For n = 1 To Sheets.Count
     
     
     If Not "|Remises|Gestion|DeBase|Écriture|Taux|FSS|" Like "*|" & Sheets(n).Name & "|*" Then
     LeNomActuel = Sheets(n).Name
      If Not Trouve Then RéponseEmployé = MsgBox("Voulez-vous transférer les données permanentes de " & LeNomActuel & " à l'année 2011 ?", vbYesNo, "Mise à jour 2011")
     
     Select Case RéponseEmployé
     
        Case 6
    'code si oui...
    Case 7 
    'code si non
    Dans mon fichier que je sélectionne au début de mon code, j'ai les 6 feuilles pour lesquels je ne veux pas de mise à jour + la feuille Maman et la feuille Papa.

    Lors de l'utilisation du code, Excel ne me propose pas les 6 feuilles (ce qui est parfait) puis me propose la feuille "Maman" (ce qui est encore parfait).

    Par contre, il ne me propose pas la feuille "Papa" et le code se termine par l'erreur 9.

    Quelqu'un peut m'aider ?

    Merci à l'avance

  2. #2
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonsoir.

    On ne voit pas tout. Cependant voici qui pourrait faire avancer le schmilblick : devant chaque appel de la collection Sheets précise le classeur. Par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks(Fichier).Sheets(i) ....
    Cordialement,

    PGZ

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 322
    Par défaut re
    Merci pgz.

    Vous avez raison mais j'ai de la difficulté à saisir ce que je dois modifier afin de corriger mon problème.

    J'ai supprimé le code des mes réponses (Case 6 et 7) et le code détecte Maman et Papa. C'est donc mon code de mes réponses qui cause un problème.


    Mon code si l'utilisateur répond oui ne fait que sélectionner la feuille "Maman" de l'autre fichier, copie quelques cellules et les colle dans mon présent fichier

    Code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    DansCeFichierFeuille = "Employé 1"
     
                Windows(LautreFichier).Activate
                Sheets(LeNomActuel).Select
                Range("A2").Select
                Selection.Copy
                Windows(CeFichier).Activate
                Sheets(DansCeFichierFeuille).Select
                Range("a2").Select
                Selection.pastespecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                    :=False, Transpose:=False
    J'ai également modifié...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     For n = 1 To Workbooks(CeFichier).Sheets.Count
    Merci à l'avance

    Dlight

  4. #4
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Re,

    Cela doit venir de ce que tant le traitement "oui" on active l'autre fichier... DOnc je répète le conseil : avant chaque Sheets préciser le classeur, et pas seulement dans l'instruction For ...
    Dès la ligne suivante, par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not "|Remises|Gestion|DeBase|Écriture|Taux|FSS|" Like "*|" & Workbooks(CeFichier).Sheets(n).Name & "|*" Then
    Ca devrait aller mieux.

    PGZ

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 322
    Par défaut re
    Merci pgz.

    Vous aviez encore une fois raison

    L'élève que je suis n'a pas écouté le maître que vous êtes...



    Dlight

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Et pour compléter, habitue toi déjà à travailler avec des variables au lieu des Activate, Select, Windows(...) et de déclarer convenablement toutes tes variables

    Ci-joint ton 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
    Dim Awk As Workbook, wk As Workbook
    Dim Fichier As Variant
    Dim n As Integer
    Dim LeNomActuel As String
     
    Application.ScreenUpdating = False
    Set Awk = ThisWorkbook
    Fichier = Application.GetOpenFilename("Excel Files (*.xls), *.xls")
    If Fichier <> False Then
         Set wk = Workbooks.Open(Fichier)
         With wk
              .Sheets("Taux").Visible = -1
              .Sheets("DeBase").Visible = -1
              Awk.Sheets("gestion").Range("A1").Value = .Sheets("gestion").Range("A1").Value
              For n = 1 To .Sheets.Count
                   If Not "|Remises|Gestion|DeBase|Écriture|Taux|FSS|" Like "*|" & .Sheets(n).Name & "|*" Then
                        LeNomActuel = .Sheets(n).Name
                        If Not Trouve Then
                             RéponseEmployé = MsgBox("Voulez-vous transférer les données permanentes de " & LeNomActuel & " à l'année 2011 ?", vbYesNo, "Mise à jour 2011")
                             Select Case RéponseEmployé
                                  Case 6
                                       'code si oui...
                                  Case 7
                                       'code si non
                             End Select
                        End If
                   End If
              Next n
         End With
         Set wk = Nothing
    End If
    Set Awk = Nothing

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

Discussions similaires

  1. [CSS] Feuille de style non prise en compte
    Par mhached dans le forum JSF
    Réponses: 8
    Dernier message: 01/01/2015, 20h41
  2. Sélectionner toutes les cellules non vides d'une feuille
    Par Cantalou dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/02/2008, 16h38
  3. [Debutant][HTML][CSS]Feuille de style non prise en compte
    Par sandrinec dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 19/04/2006, 16h23
  4. [css] Feuille de style non prise en compte
    Par Neuromancien2 dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 29/06/2005, 11h49
  5. feuille de style non reconnue
    Par zorba49 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 15/05/2005, 22h27

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