Creer des PDF suivant conditions dans userforms

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

prorudess

XLDnaute Junior
Bonsoir à tous,

Alors je vais essayer d'expliquer clairement ce que je veux faire.

Dans le fichier joint, il faudrait que :

- Quand j'arrive dans le Userform, les ComboBox s'alimentent toutes seules sans doublon et par tri alphabétique avec les données correspondantes se trouvant dans la feuille 1 (Colonne C pour le ComboBox1 et A pour le ComboBox2).

- Ensuite, lorsque l'on clique sur le bouton OK, la valeur correspondante dans la colonne B se copie en cellule B1 de la feuille 2 et un PDF s'enregistre automatiquement dans un dossier si la valeur dans le ComboBox1 est égale à la cellule C2 de la feuille 1 et le ComboBox2 est égale à la cellule A2 de la feuille 1.

Ensuite on teste cela sur la ligne suivante et on répète la même action, ceci jusqu'à la dernière ligne non vide

J'espère avoir été clair, même si j'ai l'impression que ce n'est pas trop le cas.

D'avance un grand merci de votre aide. 🙂
 

Pièces jointes

Dernière édition:
Re : Creer des PDF suivant conditions dans userforms

Pour le chargement des Cbox avec les valeurs non répétées des colonnes C et A, c'est simple.
Tu mets ceci dans ta macro :

Code:
Sub Go()
    Dim nbrLignes As Long
    
    ' On trie la feuille selon la colonne C
    Cells.Select
    Selection.Sort Key1:=Range("C2"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    
    nbrLignes = Cells(Rows.Count, 3).End(xlUp).Row
    
    ' On charge la comboBox1 avec les données de la colonne C
    UserForm1.ComboBox1.AddItem Cells(2, 3)
    For y = 3 To nbrLignes
        If Cells(y, 3) <> Cells(y - 1, 3) Then UserForm1.ComboBox1.AddItem Cells(y, 3)
    Next y
    
    ' On trie la feuille selon la colonne A
    Cells.Select
    Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

    ' On charge la comboBox2 avec les données de la colonne A
    UserForm1.ComboBox2.AddItem Cells(2, 1)
    For y = 3 To nbrLignes
        If Cells(y, 1) <> Cells(y - 1, 1) Then UserForm1.ComboBox2.AddItem Cells(y, 1)
    Next y
    
    ' On trie la feuille selon les n° de client comme elle était au départ
    Cells.Select
    Selection.Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

    
    UserForm1.Show
End Sub

Je n'ai pas compris grand-chose au traitement qui suit. Tu peux nous donner un exemple ?
 

Pièces jointes

Re : Creer des PDF suivant conditions dans userforms

Merci beaucoup pour cette première réponse.
Pour le reste je me doutais bien que cela n'était pas très clair ...

Donc par exemple :
- Si je sélectionne dans les ListBox le commercial 1 (colonne C de la feuille 1) et l'entreprise 1 (colonne A de la feuille 1).
Alors pour chaque ligne ou chacune de ces conditions respectée, la valeur correspondante de la colonne B de la feuille 1 s'inscrit dans la cellule B1 de la feuille 2 puis imprime un pdf de cette même feuille - Dans le cas présent pour le client 1 & 9
- Si cela n'est pas le cas alors on passe à la ligne suivante sans rien faire et cela jusqu'à la dernière ligne non vide de la feuille 1.
 
Dernière édition:
Re : Creer des PDF suivant conditions dans userforms

Oui c'est bien ça excuse-moi

J'en ai profité pour mettre à jour mon fichier.
 

Pièces jointes

Dernière édition:
Re : Creer des PDF suivant conditions dans userforms

Oui mais avant cela, on doit avoir la valeur 1 puis une impression de la feuille 2 en PDF et ensuite la valeur 9 puis une impression en PDF.
En fait, pour chaque ligne ou la condition est respectée je fais cette action.
 
Re : Creer des PDF suivant conditions dans userforms

Merci beaucoup,

Désolé de revenir vers toi si tard.

J'ai adapté ton code et j'ai utilisé la création de PDF intégrée dans Microsoft Office avec le code suivant :
Code:
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\moi\Desktop\Impressions\" & ComboBox1.Value & "\" & ComboBox2.Value & "\Client " & Feuil2.Range("B1").Value & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        False

Je trouve que le rendu est meilleur qu'avec PDF Creator

Encore merci pour ton aide.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
265
Retour