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 :

Débutant - MACRO VBA - Générer des données depuis un fichier source sous conditions sur une template prédéfini [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Novembre 2022
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2022
    Messages : 16
    Par défaut Débutant - MACRO VBA - Générer des données depuis un fichier source sous conditions sur une template prédéfini
    Bonjour,

    Je viens sur ce site car je souhaiterais développer mes compétences sur le code VBA.
    JE fais face à une difficulté sur un code dont le but est de transférer des données depuis un fichier source vers une template excel prédéfinie.
    Je m'excuse par avance si le message n'est pas assez précis.

    Voici ma difficulté,

    - Le fichier source (Master Data file rev02C) est un tableau répertoriant les données à transférer par ligne et sous certaines conditions par colonne
    - Le fichier généré (Piping group) est la fiche que je souhaite créée à partir de la source

    Une des conditions est de dire que si plusieurs "piping line" appartiennent à un Piping Group alors la macro va chercher toutes les piping lines et les insérer dans le fichier généré cellules U14 à U19, puis quand U19 est rempli alors la macro copie en AN14 jusque AN19.

    Dans mon cas, je n'arrive pas à définir la limite . Voici un bout de code créé mais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
      z = 0
        g = Workbooks(zisWbk).Sheets("Piping").Range("B" & i + z).Value
        Do While Workbooks(zisWbk).Sheets("Piping").Range("B" & i + z).Value = g
     
        Workbooks(fiche).Sheets("Piping").Range("U" & 15 + z).Value = Workbooks(zisWbk).Sheets("Piping").Range("B" & i + z).Value
        Workbooks(fiche).Sheets("Piping").Range("AB" & 15 + z).Value = Workbooks(zisWbk).Sheets("Piping").Range("B" & i + z).Value
     
     
      z = z + 1
     
       Loop
    Si quelqu'un peut m'aider, ce serait génial.
    Merci à toutes et à tous
    Master Data File_rev02C.xlsmPiping Group 5.xlsx

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 440
    Par défaut
    Bonjour,

    Il est vraiment très préférable de conserver les données semblables dans une même colonne et d'éviter de les répartir sur plusieurs colonnes. Cependant voici toujours une solution pour votre cas, dont je ne donne ci-dessous que la partie essentielle 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
                    z = 0
                    Do While .Range("C" & i + z) = .Range("C" & i)
                        If z < 6 Then
                            kC = 21
                            kR = z
                        ElseIf z < 12 Then
                            kC = 40
                            kR = z - 6
                        Else
                            MsgBox "Erreur: pas plus de 12 éléments admis!"
                            wshData.Select
                            Range("B" & i + z).Select
                            Exit Sub        '=== EXIT SUB ===
                        End If
                        'WSE TEMPLATE - LIST OF PIPING
                        Cells(14 + kR, kC) = .Range("AQ" & i)
                        Cells(14 + kR, kC + 7) = .Range("AR" & i)
                        '--- etc.
                        z = z + 1
                    Loop
    Ci-attaché, un début de solution plus complète, mais inachevée. Il me semble qu'il y a un problème avec votre fichier "Template", certains groupes pouvant recevoir 12 lignes et d'autres pas. Les 2 fichiers sont à mettre dans le même dossier. Ils ne sont plus tout à fait identiques à ceux que vous avez donnés. Yapluka comprendre, corriger, adapter, compléter.

    Bonne continuation.
    Fichiers attachés Fichiers attachés

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Novembre 2022
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2022
    Messages : 16
    Par défaut Remerciements
    Bonjour EricDgn

    Mille mercis pour le code.
    Il m'a été d'une grande utilité. Je vous remercie pour votre temps.
    J'essaie d'apprendre et de me faciliter la vie en utilisant le VBA mais il m'arrive régulièrement d'être bloqué.

    Encore merci beaucoup
    Maxime

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

Discussions similaires

  1. [XL-2016] Macro VBA Copier des données d'un classeur fermé selon critere
    Par Khataklysm dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/06/2019, 12h40
  2. Macro excel VBA - récupérer des données dans un fichier excel
    Par perounet dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/11/2016, 09h10
  3. Excel VBA - importer des données depuis un autre fichier excel
    Par katiar dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 01/02/2016, 20h26
  4. [MySQL] importer des données depuis un fichier EXEL
    Par islyoung2 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 13/01/2009, 07h14
  5. Intégre des données depuis un fichier xml
    Par KATE6447 dans le forum InfoPath
    Réponses: 5
    Dernier message: 20/03/2008, 14h32

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