Facturier automatique

Bonjour à tous,

Je suis nouveau sur le forum et débutant en VBA.

J'ai besoin de votre aide car je suis bloqué dans ma macro alors que j'allais toucher au but.

Voici ce que j'aimerais réaliser :

  • Une boucle qui commencerait par copier la cellule A2 de la feuille "informations" et coller la valeur texte dans la cellule C18 de la feuille "Facture" => je n'arrive pas à effectuer cette très simple opération :-/
  • Puis lancer la macro "condition" que j'ai créé et qui marche =)
  • En fonction du résultat cela génère un export d'une facture dans un dossier prédéfinie =>ça aussi j'ai réussi à le faire =)
  • Et ensuite quoiqu'il arrive je souhaite "descendre d'une ligne" et copier la cellule A3 de la feuille "informations" dans la cellule C18

Et cette boucle jusqu’à la dernière ligne de la colonne A3 de la feuille "Informations"

Alors que j'ai réussi à faire il me semble les deux macros les plus compliquées "conditions" et "export" (après des heures de recherche et de test ^^) je suis bloqué au début de ma boucle

Pouvez-vous m'aider à avancer ? Je ne demande pas forcément toute la macro d'un coup car j'aimerais comprendre =)

(je joins le fichier en PJ)

Je vous remercie d'avance pour votre temps

Et très bon dimanche à vous

Adrien

66facture-v5.xlsm (32.16 Ko)

Bonjour,

Une façon de faire pour ce qui concerne ta boucle :

Sub Macro1()
    Dim i%, n%
    With Worksheets("Informations")
        n = .Cells(.Rows.Count, 1).End(xlUp).Row
        For i = 2 To n
            Worksheets("Facture").Range("C18").Value = .Cells(i, 1).Value

            'Suite code

        Next i
    End With
End Sub

Bonne continuation.

Bonjour M. Ferrand

C'est parfait ! Merci beaucoup

Bonne journée

Re-bonjour

Je reviens vous demander de l'aide un autre blocage =)

Je viens d'intégrer un numéro de facture que je souhaite incrémenter.

La macro est faite => module 1 dans le fichier

Parcontre quand je souhaite rajouter le numéro de la facture quand j'enregistre le PDF mais j'ai une erreur, je pense que c'est dnas le format qui est pour l'instant en texte.

Sub Export_1()

'export facture pdf

info1 = Sheets("Facture").Range("B11")
info2 = Sheets("Facture").Range("E11")
info3 = Sheets("Facture").Range("B12")
info4 = Sheets("Facture").Range("C18")
    Texte = info1 & "-" & info2 & "-" & info3 & "-" & info4 & ".xls"
    Application.DisplayAlerts = False
 ChDir "C:\Users\Adrien\Desktop\Maman\Factures"
    ActiveSheet.ExportAsFixedFormat Type:=x1TypePDF, _
    Filename:=[color=#FF4000]Texte, _[/color]
    Quality:=x1QualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=True

End Sub

Par quoi je dois le remplacer ?

Mon autre blocage est que je souhaite avoir un compteur de facture pour chaque client ( colonne Q feuille Informations)

Un client peut très bien ne pas avoir de facture pendant 1 ou 2 mois..

Dans mes précédentes macro j'ai fait un sorte d'exporter un PDF seulement si le client a besoin d'une facture ( total > 0)

Est-ce que auriez une solution ? Comment dois-je intégrer cette macro dans ma boucle ?

Merci d'avance =)

44facture-v6.xlsm (36.62 Ko)
30facture-v6.xlsm (36.62 Ko)

Bonsoir,

Texte = info1 & "-" & info2 & "-" & info3 & "-" & info4
(...)
ActiveSheet.ExportAsFixedFormat xlTypePDF, Texte & ".pdf"

Cordialement.

Bonsoir,

J'ai essayé comme cela mais cela ne marche pas, j'ai surement mal compris votre solution.

Sub Export_1()

'export facture pdf

info1 = Sheets("Facture").Range("B11")
info2 = Sheets("Facture").Range("E11")
info3 = Sheets("Facture").Range("B12")
info4 = Sheets("Facture").Range("C18")
    Texte = info1 & "-" & info2 & "-" & info3 & "-" & info4
    Application.DisplayAlerts = False
 ChDir "C:\Users\Adrien\Desktop\Maman\Factures"
    ActiveSheet.ExportAsFixedFormat xlTypePDF, Texte & ".pdf", _
    Filename:=Texte, _
    Quality:=x1QualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=True

End Sub

Merci

Re,

ActiveSheet.ExportAsFixedFormat xlTypePDF, Texte & ".pdf"

C'était la dernière ligne, tu supprimes tout ce qui suit (sauf End Sub, cela va de soi !)

Re,

De cette façon ? J'ai toujours un message d'erreur :-/

Sub Export_1()

'export facture pdf

info1 = Sheets("Facture").Range("B11")
info2 = Sheets("Facture").Range("E11")
info3 = Sheets("Facture").Range("B12")
info4 = Sheets("Facture").Range("C18")
    Texte = info1 & "-" & info2 & "-" & info3 & "-" & info4 & ".xls"
    Application.DisplayAlerts = False
 ChDir "C:\Users\Adrien\Desktop\Maman\Factures"
    ActiveSheet.ExportAsFixedFormat xlTypePDF, Texte & ".pdf"

End Sub

Merci

Quel message ?

Celui la :

Erreur exécution 1004

Document non enregistré etc

et dans le débogage il me surligne la ligne

ActiveSheet.ExportAsFixedFormat xlTypePDF, Texte & ".pdf"

Voir cellule E11.

Tu fabriques un nom de fichier contenant des slash (/), caractère interdit dans un nom de fichier.

C'est bon ! merci

Rechercher des sujets similaires à "facturier automatique"