Création automatique de quittances de loyer annuel
                                    
                        willoo                    
                                    -
                                     
via55 Messages postés 14730 Statut Membre -
        via55 Messages postés 14730 Statut Membre -
        Bonjour à tous,
J'ai un fichier excel qui me sert à faire des quittance de loyer et je doit crée le document a chaque fois, le convertir en PDF et l’"enregistrer sous" pour chaque mois.
J'aimerais savoir si il est possible de créé une macro permettant de générer à partir de la quittance de janvier, toutes les quittances de l'année en PDF et dans un dossier précis?
Merci a vous
                
            
                
    
    
    
        J'ai un fichier excel qui me sert à faire des quittance de loyer et je doit crée le document a chaque fois, le convertir en PDF et l’"enregistrer sous" pour chaque mois.
J'aimerais savoir si il est possible de créé une macro permettant de générer à partir de la quittance de janvier, toutes les quittances de l'année en PDF et dans un dossier précis?
Merci a vous
        A voir également:         
- Quittance de loyer excel
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Logiciel quittance de loyer - Télécharger - Comptabilité & Facturation
10 réponses
                        
                    Oui bien sûr
Tu poste ton fichier sur mon-partage.fr, tu copies le lien créé et tu reviens le coller ici
Par contre si le problème vient du chemin du fichier je ne peux rien faire car je ne suis pas sur ton ordi
Qu'est ce qui ne fonctionne pas ?
As tu un message d'erreur et si oui lequel ?
 
                
                
    
                Tu poste ton fichier sur mon-partage.fr, tu copies le lien créé et tu reviens le coller ici
Par contre si le problème vient du chemin du fichier je ne peux rien faire car je ne suis pas sur ton ordi
Qu'est ce qui ne fonctionne pas ?
As tu un message d'erreur et si oui lequel ?
                        
                    Bonjour
1) Créer la feuille nommée Janvier avec l'année dans une cellule précise (D3 dans mon exemple), le Nom du locataire dans une autre (D6 dans l'exemple) et le prénom dans une dernière (D7 dans l'exemple)
Remplir la feuille avec toutes les autres infos utiles
2) Macro à mettre dans un module de l'éditeur VBA
Modifier le chemin pour la création du sous-dossier au nom du locataire et l'enregistrement des PDF pour l'adapter à ton cas
3) Une fois la feuille janvier remplie et la macro en place lancer la macro (Développeur - Macros - création_ Executer
La macro commence par effacer toutes feuilles qui existeraient après la 1ere (celle de janvier) ceci afin de permettre de recréer autant de quittances mensuelles que de locataires en ayant seulement à modifier la feuille Janvier
La macro vérifie ensuite si un dossier au nom et prénom du locataire existe déjà ou non à l'endroit indiqué, s'il n'existe pas elle le créé (tu pourras ainsi mettre plusieurs années dans le même dossier)
Enfin la macro copie 11 fois Janvier en changeant le mois et enregistre chaque feuille en PDF dans le dossier locataire puis enregistre janvier en pdf (les feuilles sont enregistrées sous le nom mois + année)
A adapter selon tes besoins
Cdlmnt
Via
 
                
                
    
                1) Créer la feuille nommée Janvier avec l'année dans une cellule précise (D3 dans mon exemple), le Nom du locataire dans une autre (D6 dans l'exemple) et le prénom dans une dernière (D7 dans l'exemple)
Remplir la feuille avec toutes les autres infos utiles
2) Macro à mettre dans un module de l'éditeur VBA
Sub création()
'*** Effacement de feuilles existantes
If Sheets.Count > 1 Then ' si plus  d'une feuille on les effacetoutes sauf la 1ere
Application.DisplayAlerts = False 'désactive message de confirmation suppression
For n = Sheets.Count To 2 Step -1 ' boucle sur les feuilles et efface
Sheets(n).Delete
Next
Application.DisplayAlerts = True ' réactive message confirmation
End If
'*** création d'un dossier au nom du locataire
nomloc = Range("D6") ' récupère nom du locataire en cellule D6 A MODIFIER pour adapter
prenomloc = Range("D7")  ' récupère prenom du locataire en cellule D6 A MODIFIER pour adapter
nomdossier = nomloc & " " & prenomloc '  crée nom du dossier à créer en concaténant les 2
'chemin du dossier A MODIFIER pour adapter
chemindossier = "D:\1aout2017\Quittances\" & nomdossier 
'* vérification si le dossier existe déjà ou non
If Len(Dir(chemindossier, vbDirectory)) > 0 Then
      dossierexiste = True
   Else
      dossierexiste = False
End If
If dossierexiste = False Then MkDir (chemindossier & "\") ' création du dossier s'il n'existe pas
 chemin = chemindossier & "\" ' chemin avec nom du dossier créé au nom du locataire
'***  création des 11 autres feuilles mensuelles par copie de celle de janvier puis enregistrement de la feuille en PDF
For n = 1 To 11 ' boucle 11 fois
'** création
Sheets("Janvier").Select
    Sheets("Janvier").Copy After:=Sheets(Sheets.Count) ' copie janvier
    ' choix du mois à inscrire dans la feuille
    mois = Application.WorksheetFunction.Choose(n, "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre")
     With Sheets("Janvier (2)")
     .Activate ' activation de la feuille créée
     .Range("C3") = mois ' change le mois en C3
     .Name = mois 'renomme la feuille avec le nom du mois
  '** pdf
    
     cheminfeuille = chemin & ActiveSheet.Name & .Range("D3") & ".pdf" ' chemin complet en ajoutant le mois et l'année située en D3 (A MODIFIER pour adapter)et l'extension pdf
     'exportation feuille en pdf
    .ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        cheminfeuille, Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False ' pas d'ouverture du pdf après export
     End With
  '*** création du pdf pour janvier selon le même principe
     With Sheets("Janvier")
     .Activate
     cheminfeuille = chemin & ActiveSheet.Name & .Range("D3") & ".pdf"
     .ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        cheminfichier, Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
     End With
Next
If dossierexiste = False Then mes = " Dossier " & nomdossier & " et 12 PDF créés" Else mes = "12 PDF créés dans le dossier " & nomdossier
MsgBox mes
    
End Sub
Modifier le chemin pour la création du sous-dossier au nom du locataire et l'enregistrement des PDF pour l'adapter à ton cas
3) Une fois la feuille janvier remplie et la macro en place lancer la macro (Développeur - Macros - création_ Executer
La macro commence par effacer toutes feuilles qui existeraient après la 1ere (celle de janvier) ceci afin de permettre de recréer autant de quittances mensuelles que de locataires en ayant seulement à modifier la feuille Janvier
La macro vérifie ensuite si un dossier au nom et prénom du locataire existe déjà ou non à l'endroit indiqué, s'il n'existe pas elle le créé (tu pourras ainsi mettre plusieurs années dans le même dossier)
Enfin la macro copie 11 fois Janvier en changeant le mois et enregistre chaque feuille en PDF dans le dossier locataire puis enregistre janvier en pdf (les feuilles sont enregistrées sous le nom mois + année)
A adapter selon tes besoins
Cdlmnt
Via
                        
                    merci Via55,
j'ai comme demandé copier et modifier la macro mais ça ne fonctionne pas !
serait il possible de t'envoyer le fichier pour que tu regarde ?
si oui comment faire ?
merci encore
    
                j'ai comme demandé copier et modifier la macro mais ça ne fonctionne pas !
serait il possible de t'envoyer le fichier pour que tu regarde ?
si oui comment faire ?
merci encore
                        
                    Via55, 
Avant tout je te remercie de te pencher sur mon pb.
je pb est peux etre sur le chemin, mais je n'en suis vraiment pas sur car la macro est bien trop complexe pour moi et je ne connais pas toutes les fonctions que tu utilise.
l'erreur est sur la ligne :If dossierexiste = False Then MkDir (chemindossier & "\") ' création du dossier s'il n'existe pas
Je met le lien si tu veux bien regarder
https://mon-partage.fr/f/IeKSGvLO/
merci et bonne soirée
    
                Avant tout je te remercie de te pencher sur mon pb.
je pb est peux etre sur le chemin, mais je n'en suis vraiment pas sur car la macro est bien trop complexe pour moi et je ne connais pas toutes les fonctions que tu utilise.
l'erreur est sur la ligne :If dossierexiste = False Then MkDir (chemindossier & "\") ' création du dossier s'il n'existe pas
Je met le lien si tu veux bien regarder
https://mon-partage.fr/f/IeKSGvLO/
merci et bonne soirée
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
                        
                    Il manque un \dans le chemindossier
"C:\Users\wilfried\Desktop\Quittance de loyer" & nomdossier
"C:\Users\wilfried\Desktop\Quittance de loyer\" & nomdossier
Bonne soirée aussi
 
                
                
    
                "C:\Users\wilfried\Desktop\Quittance de loyer" & nomdossier
"C:\Users\wilfried\Desktop\Quittance de loyer\" & nomdossier
Bonne soirée aussi
    j'ai ajouter le \.
Le dossier c'est créé et après toujours le "bug" sur la même commande (MkDir (chemindossier & "\") ' création du dossier s'il n'existe pas)
j'ai donc testé de mettre un o entre les "" (...........&"o") pour voir et un deuxieme fichier été créé avec un O a la fin du nom :).Mais maintenant je suis bloqué ( :.5ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
cheminfeuille, Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False ' pas d'ouverture du pdf après export
Si je remet un \ a la place du O je rebloque a ( MkDir......)
Et je ne sais pas si c'est normal mais chaque fichier créé ne peux être supprimé.
Cela fonctionne parfaitement chez toi ?
Merci
    Le dossier c'est créé et après toujours le "bug" sur la même commande (MkDir (chemindossier & "\") ' création du dossier s'il n'existe pas)
j'ai donc testé de mettre un o entre les "" (...........&"o") pour voir et un deuxieme fichier été créé avec un O a la fin du nom :).Mais maintenant je suis bloqué ( :.5ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
cheminfeuille, Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False ' pas d'ouverture du pdf après export
Si je remet un \ a la place du O je rebloque a ( MkDir......)
Et je ne sais pas si c'est normal mais chaque fichier créé ne peux être supprimé.
Cela fonctionne parfaitement chez toi ?
Merci
                        
                    Oui cela fonctionne bien chez moi
J'ai testé bien sûr avant de poster la macro
Tu as des adresses que tu n'as pas modifié dans la macro (prenom du locataire par ex)
si tu n'as besoin du prenom s'il est dans la même cellule que le nom tu supprimes la ligne prenomloc et le & prenom loc après
dans les lignes avec
cheminfeuille = chemin & ActiveSheet.Name & .Range("D3") & ".pdf"
D3 est la cellule du mois, toi il est en J5
La première feuille qui est copié devait être celle de Janvier et toi ici tu l'as appelé Quittance
Pas besoin de liste déroulante pour le mois, Dans cette feuille Janvier il doit être inscrit janvier et pour les 11 feuilles créées par la macro c’est la macro qui mets le mois dans la cellule de là feuille et qui renomme la feuille
Fais les rectifications et on verra si ça vient de là
 
                
                
    
                J'ai testé bien sûr avant de poster la macro
Tu as des adresses que tu n'as pas modifié dans la macro (prenom du locataire par ex)
si tu n'as besoin du prenom s'il est dans la même cellule que le nom tu supprimes la ligne prenomloc et le & prenom loc après
dans les lignes avec
cheminfeuille = chemin & ActiveSheet.Name & .Range("D3") & ".pdf"
D3 est la cellule du mois, toi il est en J5
La première feuille qui est copié devait être celle de Janvier et toi ici tu l'as appelé Quittance
Pas besoin de liste déroulante pour le mois, Dans cette feuille Janvier il doit être inscrit janvier et pour les 11 feuilles créées par la macro c’est la macro qui mets le mois dans la cellule de là feuille et qui renomme la feuille
Fais les rectifications et on verra si ça vient de là
                        
                    bonjour via55,
Je pense avoir fais les modification comme tu me l'a demandé
Maintenant:
-Création du répertoire avec le nom du locataire --> ok
-Création de la feuille "février" --> ok
après bug a :.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
cheminfeuille, Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False ' pas d'ouverture du pdf après export
Ne faudrait il pas avoir un logiciel pour enregistrer en PDF que je n'ai pas ?
A chaque fois qu'un fichier est créé, apres il m'est impossible de le supprimé (il n'existe plus dans c:/utilisateur/............. vérifiez son emplacement actuel et réessayez) cela est il normale ?
Je remet le lien du fichier modifié si tu veux y jeter un œil: https://mon-partage.fr/f/2QcWxJdO/
Merci a toi et bonne journée
    
                Je pense avoir fais les modification comme tu me l'a demandé
Maintenant:
-Création du répertoire avec le nom du locataire --> ok
-Création de la feuille "février" --> ok
après bug a :.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
cheminfeuille, Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False ' pas d'ouverture du pdf après export
Ne faudrait il pas avoir un logiciel pour enregistrer en PDF que je n'ai pas ?
A chaque fois qu'un fichier est créé, apres il m'est impossible de le supprimé (il n'existe plus dans c:/utilisateur/............. vérifiez son emplacement actuel et réessayez) cela est il normale ?
Je remet le lien du fichier modifié si tu veux y jeter un œil: https://mon-partage.fr/f/2QcWxJdO/
Merci a toi et bonne journée
                        
                    Bonjour
Désolé je ne vois pas ce qui cause le bug
j'ai testé ton fichier en changeant uniquement le chemin pour l'adapter à mon ordi et tout fonctionne chez moi, j'ai bien le sous dossier créé et les 12 PDFdedans
Essaie de faire directement à partir d'une feuille Enregistrer sous en choisissant PDF au lieu de Classeur Excel dans la liste déroulante pour voir si l’enregistrement en PDF fonctionne bien
Cela provient peut-être de version d'Excel ou de ta configuration (si tu es sous Mac par exemple, les Mac posent parfois des problèmes)
Si c'est le cas reviens poser la question sous une forme style Je n'arrive pas à enregistrer en PDF en indiquant ta version d'Excel et ta configuration, tu trouveras quelqu'un de plus calé que moi pour résoudre la question
Cdlmnt
Via
 
                
                
    
                Désolé je ne vois pas ce qui cause le bug
j'ai testé ton fichier en changeant uniquement le chemin pour l'adapter à mon ordi et tout fonctionne chez moi, j'ai bien le sous dossier créé et les 12 PDFdedans
Essaie de faire directement à partir d'une feuille Enregistrer sous en choisissant PDF au lieu de Classeur Excel dans la liste déroulante pour voir si l’enregistrement en PDF fonctionne bien
Cela provient peut-être de version d'Excel ou de ta configuration (si tu es sous Mac par exemple, les Mac posent parfois des problèmes)
Si c'est le cas reviens poser la question sous une forme style Je n'arrive pas à enregistrer en PDF en indiquant ta version d'Excel et ta configuration, tu trouveras quelqu'un de plus calé que moi pour résoudre la question
Cdlmnt
Via
                        
                    Re
J'ai Excel 2007 également
voici un fichier excel avec l'image de ma fenêtre Enregistrer sous
https://mon-partage.fr/f/sHzbvYlK/
 
                
                
    
                J'ai Excel 2007 également
voici un fichier excel avec l'image de ma fenêtre Enregistrer sous
https://mon-partage.fr/f/sHzbvYlK/
