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 :

VBA boucle imbriquée


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Commercial
    Inscrit en
    Juin 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Commercial
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2020
    Messages : 4
    Par défaut VBA boucle imbriquée
    Bonjour,
    je souhaite copier des données d'un onglet sur l'autre avec une boucle sur les lignes (nb variable, <255) + une boucle sur les colonnes (nb variable <255). C'est pour remplir un masque pour intégrer dans ERP.

    créer la boucle sur les lignes => OK avec While WEND

    je souhaite qu'à chaque colonne non vide (dans onglet "cadencier" colonne à partir de L), la boucle ligne se répète sur la nouvelle colonne. je dois mal paramétrée une variable.

    j'ai essayé avec boucle FOR ou WHILE et je n'y arrive pas à les imbriquer ensemble.MACRO ZORP 2 boucle.xlsm

    Module 4 : boucle ligne - ne pas modifier
    Module 5 : boucle Concat où je souhaiterai imbriquer les 2.

    Merci pour votre aide.

  2. #2
    Membre Expert Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Par défaut
    Bonjour,

    Très peu de membre ouvrent les pièces jointes, pour des raison évidentes de sécurité.

    Pourriez-vous poster votre code actuel, ainsi que des capture d'écran de vos données avant / après pour nous donner une idée du début et fin de traitement.

    Bien à vous,
    MFoxy

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Commercial
    Inscrit en
    Juin 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Commercial
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2020
    Messages : 4
    Par défaut
    bonjour, voici le code pour ma boucle ligne :

    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
    Sub boucle_ligne()
     
    Dim Col_Z As Integer
    Dim Lig_Z As Integer
    Dim Col_Info As Byte
    Dim Lig_Cad As Byte
     
     
    Lig_Z = 2
    Col_Z = 1
    Col_Info = 12
    Lig_Cad = 8
     
    While Sheets("cadencier").Cells(Lig_Cad, 1) <> ""
     
    Sheets("ZORP").Cells(Lig_Z, Col_Z + 10) = Sheets("cadencier").Cells(Lig_Cad, 1)
    Sheets("ZORP").Cells(Lig_Z, Col_Z + 11) = Sheets("cadencier").Cells(Lig_Cad, Col_Info)
    Sheets("ZORP").Cells(Lig_Z, Col_Z) = Sheets("cadencier").Cells(7, Col_Info)
    Sheets("ZORP").Cells(Lig_Z, Col_Z + 4) = Sheets("cadencier").Cells(7, Col_Info)
    Sheets("ZORP").Cells(Lig_Z, Col_Z + 17) = Sheets("cadencier").Cells(6, Col_Info)
     
     
    Lig_Cad = Lig_Cad + 1
    Lig_Z = Lig_Z + 1
    Wend
     
    End Sub
    J'ai mis les copies d'écran en pièces jointes

    je veux que les données se mettent en suivant sur le 2ème onglet
    Nom : Macro fichier définitif.JPG
Affichages : 555
Taille : 39,8 KoNom : Macro fichier départ.JPG
Affichages : 541
Taille : 41,8 Ko

  4. #4
    Membre Expert Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Par défaut
    Re,

    Je ne vois pas où tu récupères tes dates ?
    De plus à première vue je dirais même que tu pourrais te passer de vba. En te basant sur un tableau croisé dynamique.

    https://silkyroad.developpez.com/excel/tcd/

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Commercial
    Inscrit en
    Juin 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Commercial
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2020
    Messages : 4
    Par défaut
    bonjour,
    TCD pas possible sinon je l'aurai déjà fait. Merci quand même.

    j'ai des cases fixes sur l'onglet 1 et pas que je reporte sur chaque ligne dans l'onglet 2. elles sont cachées dans la copie d'écran d'où l'extraction qui commence en colonne A puis L.


    sur des cases fixes c est facile à récupérer en Macro, ce que je voudrai c est que l'on me dise comment imbriquer une macro ligne déjà développée avec While Wend et l'emboiter avec une boucle qui dit : dès que la colonne contient un titre refaire tourner la macro ligne sur la nouvelle colonne jusqu'à la dernière colonne vide.

    avec boucle FOR et variable der_colonne, je n'y suis pas arrivée car je pense que ma variable Lig_Z doit être redéfinie.

    je me forme seule sur les macros, et je ne maitrise pas encore assez les boucle. Merci pour votre aide.


    je pourrai répéter cette boucle pour chaque colonne en redéfinissant ma variable Col_info mais le but est d'automatiser au maximum.

  6. #6
    Nouveau membre du Club Avatar de BAL_pro_18
    Homme Profil pro
    Ingénieur Indépendant
    Inscrit en
    Juin 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur Indépendant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juin 2020
    Messages : 7
    Par défaut
    Bonjour,

    As-tu essayé avec do until .... loop ?

    En mettant :

    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
    Do Until Sheets("cadencier").Cells(Lig_Cad, 1) = ""
     
    Sheets("ZORP").Cells(Lig_Z, Col_Z + 10) = Sheets("cadencier").Cells(Lig_Cad, 1)
    Sheets("ZORP").Cells(Lig_Z, Col_Z + 11) = Sheets("cadencier").Cells(Lig_Cad, Col_Info)
    Sheets("ZORP").Cells(Lig_Z, Col_Z) = Sheets("cadencier").Cells(7, Col_Info)
    Sheets("ZORP").Cells(Lig_Z, Col_Z + 4) = Sheets("cadencier").Cells(7, Col_Info)
    Sheets("ZORP").Cells(Lig_Z, Col_Z + 1) = "ZORP"
    Sheets("ZORP").Cells(Lig_Z, Col_Z + 2) = Sheets("cadencier").Cells(5, 3)
    Sheets("ZORP").Cells(Lig_Z, Col_Z + 3) = Sheets("cadencier").Cells(4, 3)
    Sheets("ZORP").Cells(Lig_Z, Col_Z + 17) = Sheets("cadencier").Cells(6, Col_Info)
    Sheets("ZORP").Cells(Lig_Z, Col_Z + 13) = Sheets("cadencier").Cells(1, 3)
    Sheets("ZORP").Cells(Lig_Z, Col_Z + 6).FormulaR1C1 = "=TEXT(RC[11],""aaaammjj"")"
     
    Lig_Cad = Lig_Cad + 1
    Lig_Z = Lig_Z + 1
    Loop
    la boucle s'arrête correctement,

    j'espère avoir répondu à ta problématique

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Commercial
    Inscrit en
    Juin 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Commercial
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2020
    Messages : 4
    Par défaut
    bonjour,

    j'ai rajouté une boucle sur le même format en colonne et j'ai réussi à faire la boucle en colonne et en ligne. Je te remercie vraiment pour ton aide car la macro est simple et beaucoup plus légère qu'avant.

    Merci vraiment beaucoup

Discussions similaires

  1. VBA, Création d'une Matrice avec boucles imbriquées.
    Par EdouardNourtar dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/06/2020, 17h57
  2. arraylist vba, boucles imbriquées
    Par julio44 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 20/07/2011, 10h49
  3. [XL-2003] comment ecrire en vba des boucles imbriquées?
    Par doudou8mc dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/07/2009, 16h15
  4. Boucles imbriquées
    Par Immobilis dans le forum ASP
    Réponses: 28
    Dernier message: 14/01/2005, 14h17
  5. [XSL]boucle imbriquée avec condition
    Par kor dans le forum XSL/XSLT/XPATH
    Réponses: 10
    Dernier message: 11/01/2005, 15h19

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