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 :

Publipostage Excel vers Excel [Toutes versions]


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
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2017
    Messages : 25
    Par défaut Publipostage Excel vers Excel
    Bonjour,

    Je me permet de revenir sur ce forum car il m'a été d'une grande utilité la dernière fois

    Voici mon (nouveau) problème :

    Je souhaite effectuer un publipostage au sein d'un même fichier Excel. Pour chaque ligne de la feuille "BdD" (plusieurs centaines réellement), j'aimerai avoir une nouvelle feuille reprenant les informations de cette ligne. Et je souhaiterait que le nom de chaque feuille corresponde à un champs "N° dossier".
    Par exemple :
    Feuille base de donnée :
    Nom : BdD.PNG
Affichages : 5963
Taille : 21,5 Ko

    Feuille résultat :
    Nom : Resultat.PNG
Affichages : 5894
Taille : 17,0 Ko

    Je suppose qu'une macro est indispensable pour réaliser cette opération. Cependant, je n'ai que des notions de VBA...

    Please help-me !

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Et qu'as-tu au moins tenté d'écrire ? Rien ?

    A ce stade, donc, je vais me contenter de te suggérer ceci :
    - Une feuille "modèle" (vierge) de tes résultats
    - évite les cellules fusionnées (elles te joueront des tours) , en particulier et surtout pour les cellules C22 (où tu mets le N° de dossier)
    - Pour chaque ligne k parcourue de la feuille source :
    - extrait le contenu de la cellule cells(k, 4) -->> c'est ton N° de dossier
    - crée une feuille portant ce N° de dossier par copie de ta feuille modèle
    -----écris-y en C2 le n° de dossier
    ----- écris-y en cellules B4 à B7 le contenu des cellules cells(k,2) , cells(k,3), cells(k,5) et cells(k,6) de la feuille source
    Tu as là tout ce qu'il te faut pour commencer à écrire.
    J'attends de voir ton effort.

    EDIT : je te vois chercher partout. C'est bien , mais tu pourrais également chercher dans ton aide interne VBA******. Tu y trouverais dans la foulée d'autres choses ****** qui t'intéresseront et te donneront le goût et l'envie de progresser.

    ****** Ouvre par exemple la rubrique Worksheets.Méthode Add de ton aide interne VBA. C'est de cela, que tu as besoin, et pas vraiment de savoir comment supprimer des feuilles (



    J'ai utilisé plus haut la notation cells ( cells(k,4), par exemple). Je sais que tu sais maintenant qu'il est également possible d'utiliser la notation Range -->> Range("D:" & k) et Cells(k,4) sont la même cellule...

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2017
    Messages : 25
    Par défaut
    Voici mes débuts :

    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
    Sub Publi_Xl_Xl()
    'Variable déterminant la dernière ligne :'
    derlig = Range("A" & Rows.Count).End(xlUp).Row
     
    'Supression des feuilles situés entre "modele" et "Feuil3"'
    Application.DisplayAlerts = False
     
     
    'Boucle de publipostage'
    For i = 2 To derlig
    Sheets("Modele").Copy Before:=Sheets("Feuil3")
    ActiveSheet.Name = ("N°" & Sheets("BdD").Range("D" & i))
    Range("B3") = Sheets("BdD").Cells(i, )
    Range("B4") = Sheets("BdD").Cells(i, 2)
    Range("B5") = Sheets("BdD").Cells(i, 3)
    Range("C2") = Sheets("BdD").Cells(i, 4)
    Range("B6") = Sheets("BdD").Cells(i, 5)
    Range("B7") = Sheets("BdD").Cells(i, 6)
     
    Next i
     
    End Sub
    J'imaginais cela beaucoup plus compliqué. J'essayerai demain au travail sur le fichier réel.
    Par contre, comme tu as pu le constater, il manque la commande permettant de supprimer les lignes entre "modele" et "Feuil3". Je n'arrive pas à trouver cette commande...

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Par contre, comme tu as pu le constater, il manque la commande permettant de supprimer les lignes entre "modele" et "Feuil3". Je n'arrive pas à trouver cette commande...
    Rubrique Worksheets.Delete, méthode de ton aide interne VBA.
    Ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("toto").delete  ''''''-->> supprime la feuille nommée toto.
    Comprends bien ce mécanisme, applicable à toute collection (worksheets est une collection - la collection des feuilles)
    On se réfère à l'objet d'une collection soit par son index, soit par la chaîne de caractères qui lui est affectée.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2017
    Messages : 25
    Par défaut
    La macro fonctionne correctement.
    Cependant, je n'arrive pas à trouver le code permettant de supprimer toutes les feuilles commençant par "N°".

    J'ai essayer différents "trucs" trouvé sur internet mais sans succès.
    Une petite aide serait la bienvenue

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim ws As Worksheet
    With Application
        .DisplayAlerts = False
        .ScreenUpdating = False
           For Each ws In Worksheets
            If ws.Name <> "Feuil3" Or "BdD" Then ws.Delete
          Next ws
        .DisplayAlerts = True
        .ScreenUpdating = True
    End With

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     For Each ws In Worksheets
            If left(ws.Name,2) = "N°" Then ws.Delete
          Next ws

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

Discussions similaires

  1. [XL-2003] Publipostage excel vers excel
    Par mikelion dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 24/09/2013, 14h43
  2. Publipostage Excel vers Excel
    Par Carlooo dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/09/2013, 14h18
  3. [XL-2010] Publipostage VBA (depuis excel vers outlook)
    Par krokos55 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 05/12/2012, 10h49
  4. Réponses: 2
    Dernier message: 12/02/2007, 13h39
  5. [VBA-E]Création de graphe de Excel vers Excel
    Par pmboutteau dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 09/02/2006, 14h43

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