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 :

Code VBA et Macro et interactions inter-feuilles [XL-2019]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Femme Profil pro
    en CDD
    Inscrit en
    Juillet 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : en CDD
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2019
    Messages : 8
    Par défaut Code VBA et Macro et interactions inter-feuilles
    Bonjour à tous !

    Problématique : Créer des interactions entre feuilles sachant qu'elles n'ont pas encore été généré?

    Contexte :

    j'ai réussi à générer des sous fiches (selon un modèle en feuille 2) automatiquement à l'aide d'une macro (module 3) et les nommer en fonction de la liste colonne G de ce tableau recap.
    Une macro permet de les supprimer pour les test... plusieurs feuilles ne pouvant pas avoir le même nom.

    J'aimerais donc traiter l'information de la colonne M de mon recap (le nombre de tronçons) et avec ce que je pense être de la MFC remplir les sous fiches lors de la leur créations (les sous fiches sont donc basé sur le même modèle mais seront à leur génération toutes unique car rempli selon leur ligne respective du tableau recap.
    J'aimerais donc que ce nombre de tronçons (Exemple : 4 pour le BT-004) soit transformé en une liste A, B , C, D dans la colonne A de la sous fiches correspondant au BT-004.

    Si vous arrivez à m'aider dans cette requête.. je pense que je pourrais continuer pour la suite... à savoir faire en sorte que les informations remplie dans chaque sous fiches remplissent le tableau recap (plus encombrant et moins facile à gérer > 400 lignes) .
    Le problème reste le même, générer des interactions entre les feuilles lors de leur création, je pense que il s'agira d'un code intégré dans mon code de génération des sous fiches...

    Ci-joint le fichier XL

    Un grand merci pour votre aide précieuse.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Si j'ai bien compris:
    feuille "Avancement", en B18 et à tirer vers le bas, mettre la formule de récupération du nombre de tronçons
    Puis le code modifié
    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
    Sub Creation_Onglets_Selon_Modele()
        Dim c As Range
        Dim Nb_Tronçon As Long
        Application.ScreenUpdating = False
        'On crée les onglets qui sont listés à partir de la cellule
        'A2 de l'onglet nommé Liste
        Set c = Worksheets("Avancement").Range("A18") 'cellule de départ
        Do Until IsEmpty(c)     'boucle tant que c est vide
            Nb_Tronçon = Worksheets("Avancement").Cells(c.Row, "B")
            'on copie le modèle en dernier
            Worksheets("Modèle Fiche").Copy After:=Worksheets(ThisWorkbook.Sheets.Count)
            With Worksheets(ThisWorkbook.Sheets.Count) 'avec l'onglet créé
                .Name = c.Value     'on renomme
                'on remplit notre modèle comme on veut...
                .Range("H1") = c.Value
                For i = 1 To Nb_Tronçon
                    .Cells(i + 7, "A") = Chr(i + 64) 'on affiche les lettres de A à Z suivant le nombre de tronçons
                Next i
            End With
            Set c = c.Offset(1, 0)      'prochaine ligne
        Loop
        Set c = Nothing
        Application.ScreenUpdating = True
    End Sub
    Cdlt

  3. #3
    Membre habitué
    Femme Profil pro
    en CDD
    Inscrit en
    Juillet 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : en CDD
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2019
    Messages : 8
    Par défaut
    Bonjour,

    Merci infiniment pour votre aide précieuse, une simple question ...

    Si je veux directement lire la colonne G du tableau et non passer par cette liste "test" en colonne B(18) :
    Je remplace Cells(c.Row, "B") par Cells(c.Row, "G") et c'est bon ou je dois forcément passer par une liste extraite ?

    Cordialement,

    Baptiste

  4. #4
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Si je veux directement lire la colonne G du tableau et non passer par cette liste "test" en colonne B(18) :
    Je remplace Cells(c.Row, "B") par Cells(c.Row, "G") et c'est bon ou je dois forcément passer par une liste extraite ?
    Bien sûr vous pouvez lire directement dans le tableau, attention la première ligne est 4 au lieu de 18

    Cdlt

  5. #5
    Membre habitué
    Femme Profil pro
    en CDD
    Inscrit en
    Juillet 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : en CDD
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2019
    Messages : 8
    Par défaut
    Merci beaucoup,

    J'ai cependant un autre problème....
    J'aimerais faire référence à des cellules de feuilles pas encore crée pour remplir le recap

    Pouurait tu me montrer un exemple en complétant le code de ma macro pour que la feuille 1 récupère la valeur d'une cellule d'une feuille crée par la macro.

    Encore merci pour votre temps

    Cordialement

  6. #6
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,
    Avec la N° BT pris en colonne G et le Nbre de tronçons pris en colonne H
    le fichier
    Pièce jointe 493719

    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
     
    Sub Creation_Onglets_Selon_Modele()
        Dim c As Range
        Dim Nb_Tronçon As Long
        Application.ScreenUpdating = False
        'On crée les onglets qui sont listés à partir de la cellule
        'A2 de l'onglet nommé Liste
        Set c = Worksheets("Avancement").Range("G4") 'cellule de départ
        Do Until IsEmpty(c)     'boucle tant que c est vide
            Nb_Tronçon = Worksheets("Avancement").Cells(c.Row, "M")
            'on copie le modèle en dernier
            Worksheets("Modèle Fiche").Copy After:=Worksheets(ThisWorkbook.Sheets.Count)
            With Worksheets(ThisWorkbook.Sheets.Count) 'avec l'onglet créé
                .Name = c.Value     'on renomme
                'on remplit notre modèle comme on veut...
                .Range("H1") = c.Value
                For i = 1 To Nb_Tronçon
                    .Cells(i + 7, "A") = Chr(i + 64)
                Next i
            End With
            Set c = c.Offset(1, 0)      'prochaine ligne
        Loop
        Set c = Nothing
        Application.ScreenUpdating = True
    End Sub
    Cdlt

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

Discussions similaires

  1. [XL-2003] Problème à l'execution du code VBA : fenetre macro
    Par Dhumkazaar dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 03/07/2010, 20h57
  2. [XL-2003] Protéger le code VBA par macro
    Par pitoumad dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/07/2010, 06h22
  3. [AC-2002] conversion code VBA en macro
    Par 19chacha75 dans le forum VBA Access
    Réponses: 2
    Dernier message: 10/06/2010, 12h41
  4. Modifier Code VBA avec macro
    Par yadla dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/08/2007, 11h26
  5. [débutant]Code VBA ou Macro ?
    Par Sarune dans le forum VBA Access
    Réponses: 2
    Dernier message: 20/03/2007, 09h38

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