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 :

Copie de feuilles sélectionner par case a cocher dans un second classeur


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Août 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2013
    Messages : 51
    Par défaut Copie de feuilles sélectionner par case a cocher dans un second classeur
    Bonsoir a tous,
    Je suis coincé dans l'avancement d'un projet car je ne trouve pas de solution.

    J'ai un classeur nommé Ficheetude qui comporte le code qui me permet d'ouvrir un classeur existant nommé Bibliotequefiche.

    Dans le classeur Bibliotequefiche il y a plusieurs feuilles BD feuilleClim feuillePAC feuilleGaz etc...

    Dans la colonne B de la feuille BD il y a la liste des feuilles pressente dans le classeur bibliotequefiche

    J'aimerais par le biais d'une Case à cocher pressente en colonne A de ma feuille BD sélectionner les feuilles qui seront copier
    a la fin de mon classeur Ficheetude.

    Je suis encore très limiter par mes connaissances en VBA et j'aimerais un coup de main la dessus.

    Merci beaucoup de votre aide

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 106
    Par défaut code vba
    bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub TEST()
    'code vba ouverture fichier a inséré avant et nom de fichier et feuille a modifer
    With Workbooks("distance google maps.xlsm").Sheets("Feuil1")
    Call DeplaceDonnéesEntre(Workbooks("classeur source"), Sheets("feuille source"), Workbooks("classeur destination"), 2, "X") '2=numero colonne liste feuille source 
    'et mettre un x dans la colonne juste avant
    End With
    End Sub
    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
     ' wbSource              : classeur source
    ' wbDest As Workbook     : classeur destination
     ' wsSource As Worksheet : Feuille à partir de laquelle il faut déplacer les données
    ' wsDest   : nombre d'onglet destination
    ' colonne As Integer    : Colonne de la feuille source liste
    'choix    en MAJUSCULE
    Sub DeplaceDonnéesEntre(wbSource As Workbook, wsSource As Worksheet, wbDest As Workbook, colonne As Integer, choix)
        Dim wsdest
        Dim SourceLine As Long
        Dim nom
        wbnamesou = wbSource.Name
        wsnamesou = wsSource.Name
        wbnamedest = wbDest.Name
        wsdest = Workbooks(wbnamedest).Sheets.Count
        For SourceLine = Workbooks(wbnamesou).Sheets(wsnamesou).Cells(Rows.Count, colonne).End(xlUp).Row To 1 Step -1
            If UCase(Workbooks(wbnamesou).Sheets(wsnamesou).Cells(SourceLine, colonne - 1).Value) = choix Then
            nom = UCase(Workbooks(wbnamesou).Sheets(wsnamesou).Cells(SourceLine, colonne).Value)
            Workbooks(wbnamesou).Sheets(nom).Copy After:=Workbooks(wbnamedest).Sheets(wsdest)
            End If
        Next SourceLine
    End Sub
    cordialement
    nicogef

  3. #3
    Membre actif
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Août 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2013
    Messages : 51
    Par défaut re
    Citation Envoyé par nicogef Voir le message
    bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub TEST()
    'code vba ouverture fichier a inséré avant et nom de fichier et feuille a modifer
    With Workbooks("distance google maps.xlsm").Sheets("Feuil1")
    Call DeplaceDonnéesEntre(Workbooks("classeur source"), Sheets("feuille source"), Workbooks("classeur destination"), 2, "X") '2=numero colonne liste feuille source 
    'et mettre un x dans la colonne juste avant
    End With
    End Sub
    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
     ' wbSource              : classeur source
    ' wbDest As Workbook     : classeur destination
     ' wsSource As Worksheet : Feuille à partir de laquelle il faut déplacer les données
    ' wsDest   : nombre d'onglet destination
    ' colonne As Integer    : Colonne de la feuille source liste
    'choix    en MAJUSCULE
    Sub DeplaceDonnéesEntre(wbSource As Workbook, wsSource As Worksheet, wbDest As Workbook, colonne As Integer, choix)
        Dim wsdest
        Dim SourceLine As Long
        Dim nom
        wbnamesou = wbSource.Name
        wsnamesou = wsSource.Name
        wbnamedest = wbDest.Name
        wsdest = Workbooks(wbnamedest).Sheets.Count
        For SourceLine = Workbooks(wbnamesou).Sheets(wsnamesou).Cells(Rows.Count, colonne).End(xlUp).Row To 1 Step -1
            If UCase(Workbooks(wbnamesou).Sheets(wsnamesou).Cells(SourceLine, colonne - 1).Value) = choix Then
            nom = UCase(Workbooks(wbnamesou).Sheets(wsnamesou).Cells(SourceLine, colonne).Value)
            Workbooks(wbnamesou).Sheets(nom).Copy After:=Workbooks(wbnamedest).Sheets(wsdest)
            End If
        Next SourceLine
    End Sub
    cordialement
    nicogef
    Bonjour,

    Je viens de remettre mon pc en route (Carte mère HS)

    je viens de tester et adopter le code a mes besoin, super !

    C'est exactement ce que j'avais besoin

    Merci encore

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Jimmatdycol Voir le message
    J'aimerais par le biais d'une Case à cocher pressente en colonne A de ma feuille BD sélectionner les feuilles qui seront copier a la fin de mon classeur Ficheetude.
    Je te déconseille d'utiliser des cases à cocher, ça risque de compliquer fortement ton code.
    Utilise plutôt de simple cellules dans lesquelles tu mettras, par exemple, un "X" pour signaler ce que tu souhaites copier.

    Dans ta macro, tu peux faire une boucle For To ou For Each pour scruter toutes les cellules à cocher.
    https://msdn.microsoft.com/fr-fr/VBA...next-statement
    Tu testes leur contenu avec un If.
    https://msdn.microsoft.com/fr-fr/VBA...else-statement
    Si la condition est positive, tu copies l'onglet correspondant avec la méthode Copy de Worksheet.
    https://msdn.microsoft.com/fr-fr/lib.../ff837784.aspx

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

Discussions similaires

  1. Réponses: 21
    Dernier message: 25/09/2015, 12h09
  2. Réponses: 5
    Dernier message: 08/08/2009, 13h09
  3. Réponses: 1
    Dernier message: 16/10/2008, 15h58
  4. Copie de feuilles sélectionnées dans un même classeur
    Par TNC dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 25/09/2008, 17h31
  5. VBA reconnaissance d'une feuille sélectionnée par Select Case
    Par DaVinci_067 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/01/2008, 04h22

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