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

Excel Discussion :

VBA boucle sur un intervalle


Sujet :

Excel

  1. #1
    Membre à l'essai
    Femme Profil pro
    Assistante administrative
    Inscrit en
    Septembre 2020
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Assistante administrative
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2020
    Messages : 15
    Points : 13
    Points
    13
    Par défaut VBA boucle sur un intervalle
    Bonjour à tous et merci d'avance pour vos retours.

    Je souhaite éditer des PDF uniques (une centaine) selon deux valeurs que j'aurai choisi: valeur de début et valeur de fin.
    j'arrive à éditer un pdf unique (PDF_UNITAIRE) selon une valeur en M6 mais pas sur un intervalle.

    J'ai 2 boutons selon les besoins:
    - PDF unitaire : créé après le choix du n° client
    - Tous les PDF : créé après l'intervalle renseigné

    Cellule M6 = cellule de référence pour l'affichage des données dans le tableau pour l'export en PDF
    Cellule N13 = début de mon intervalle
    Cellule N14 = Fin de mon intervalle

    Je voudrais que si l'intervalle est de 1 à 15, le code fasse un PDF du n°1 puis un PDF du n° 2 etc jusqu'à 15.
    Mais cela pourrait être du 13 au 25 ou autre...

    Merci pour votre aide

    Nom : Capture d'écran_20230125_112338.png
Affichages : 85
Taille : 47,6 Ko
    Nom : Capture d'écran_20230125_113139.png
Affichages : 106
Taille : 19,7 Ko

    Je vous mets le code écrit pour les copier/coller au besoin.

    Sub PDF_TOUS()

    'changer la valeur n° client M6
    Range("N13").Select
    Selection.Copy
    Range("M6").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

    'Boucle selon condition
    Dim x As Integer
    For x = Range("M6") To Range("n14") Step 1

    'Création PDF
    Dim nompdf As String
    Dim dossier As String

    dossier = ThisWorkbook.Path

    nompdf = dossier & "\" & Sheets("impression").Range("D8") & Sheets("impression").Range("P6")
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=nompdf & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False



    Next x


    End Sub

  2. #2
    Membre émérite
    Homme Profil pro
    Formateur et développeur bureautique
    Inscrit en
    Mars 2007
    Messages
    1 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur et développeur bureautique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 410
    Points : 2 871
    Points
    2 871
    Par défaut
    Bonjour

    Je suppose qu'inscrire le numéro du client en M6 influe sur le contenu de la feuille.
    Et donc, comme dans la boucle il n'y a pas de changement de la cellule M6, il s'agit toujours du même PDF qui est édité un certain nombre de fois.

    Vite fait, sans tester, on pourrait faire quelque chose comme suit.
    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
    Sub PDF_TOUS()
     
    'Boucle selon condition
    Dim x As Integer
    For x = Range("N13") To Range("N14") Step 1
    Range("M6").Value=x
    'Création PDF
    Dim nompdf As String
    Dim dossier As String
     
    dossier = ThisWorkbook.Path
     
    nompdf = dossier & "\" & Sheets("impression").Range("D8") & Sheets("impression").Range("P6")
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=nompdf & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
     
    Next x
     
    End Sub
    En espérant que cela aide

    Bonne journée

    Pierre Dumas
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Assistante administrative
    Inscrit en
    Septembre 2020
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Assistante administrative
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2020
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par Pierre Dumas Voir le message
    Bonjour

    Je suppose qu'inscrire le numéro du client en M6 influe sur le contenu de la feuille.
    Et donc, comme dans la boucle il n'y a pas de changement de la cellule M6, il s'agit toujours du même PDF qui est édité un certain nombre de fois.

    Vite fait, sans tester, on pourrait faire quelque chose comme suit.
    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
    Sub PDF_TOUS()
     
    'Boucle selon condition
    Dim x As Integer
    For x = Range("N13") To Range("N14") Step 1
    Range("M6").Value=x
    'Création PDF
    Dim nompdf As String
    Dim dossier As String
     
    dossier = ThisWorkbook.Path
     
    nompdf = dossier & "\" & Sheets("impression").Range("D8") & Sheets("impression").Range("P6")
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=nompdf & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
     
    Next x
     
    End Sub
    En espérant que cela aide

    Bonne journée

    Pierre Dumas

    Super merci beaucoup c'est tout à fait ça <3

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

Discussions similaires

  1. Boucle sur plusieurs intervalles de temps
    Par Stephlandes dans le forum Langage SQL
    Réponses: 7
    Dernier message: 19/07/2021, 12h12
  2. Lenteur VBA boucle sur moyenne d'alea borné
    Par lolo92130 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/08/2018, 16h29
  3. [XL-2010] VBA - Boucle sur SeriesCollection
    Par AlexisB. dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 13/12/2016, 11h10
  4. [WD-2010] VBA - Boucle sur contenu des shapes SAUF les shapes de groupes
    Par peper-eliot dans le forum VBA Word
    Réponses: 3
    Dernier message: 15/11/2012, 23h16
  5. [VBA E] boucle sur textbox d'une userform
    Par zoumzoum59 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 03/07/2006, 20h37

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