XL 2010 Macro multiple

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 !

OISEAU1

XLDnaute Nouveau
Bonjour le forum,

J'ai créé un petit fichier pour encaisser, facturer et suivre les entrées/sorties de trésorerie.
Je souhaite appliquer une macro pour effectuer une opération multiple en une seule fois mais n'ai pas la capacité de l'écrire ...
J'aurai besoin de votre aide pour mettre en œuvre ceci :

Lorsque je clique sur le bouton GENERER de l'onglet CAISSE, je souhaite en une seule opération:
- Sélectionner A1:G52 de l'onglet FACTURE
- Enregistrer la sélection sous PDF nommée comme cellule F48 (onglet FACTURE) et archiver dans mon répertoire FACTURES (Documents - ZEST -FACTURES)
- Sélectionner B52:E52 (onglet FACTURE) et coller les valeurs dans la première ligne vide du tableau de l'onglet JOURNAL de la colonne B à E
- Effacer les valeurs C2:C10;C13;D22;F13;F22 de l'onglet CAISSE

J'espère avoir été clair au niveau de ma demande
Merci pour votre aide et vos propositions
 

Pièces jointes

Solution
Bonjour Oiseau,
Un essai en PJ avec :
VB:
Private Sub CommandButton1_Click()
Dim Nom$, DL%, F, J, C
Set F = Sheets("FACTURE"): Set J = Sheets("JOURNAL"): Set C = Sheets("CAISSE")
Nom = F.[F48]
F.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Nom, Quality:=xlQualityStandard _
        , IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
DL = 1 + J.Cells(Rows.Count, "B").End(xlUp).Row
J.Range("B" & DL & ":F" & DL) = F.[B52:E52].Value
C.Range("C2:C10, C13:D22, F13, F22").ClearContents
End Sub
Le PDF est enregistré dans le même dossier que le fichier.
A tester.
 

Pièces jointes

Pièces jointes

Re,
D'après ce que j'ai compris, vous voulez le nom en majuscules et le prénom avec la 1ere lettre en majuscule.
Si c'est ça, pourquoi pas simplement :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Sortie
    If Not Intersect(Target, Range("C2:C3")) Is Nothing Then
        Application.EnableEvents = False
        [C2] = UCase([C2])
        [C3] = Application.Proper([C3])
    End If
Sortie:
Application.EnableEvents = True
End Sub
 

Pièces jointes

Tant qu'à faire, mettez aussi la ville en majuscules :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Sortie
    If Not Intersect(Target, Range("C2:C3,C6")) Is Nothing Then
        Application.EnableEvents = False
        [C2] = UCase([C2])
        [C3] = Application.Proper([C3])
        [C6] = UCase([C6])
    End If
Sortie:
Application.EnableEvents = True
End Sub
 
- 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

Retour