Code incrementiel
Bonjours a tous,
Je suis en train de faire un petit programme sur excel pour gérer mes factures,
Je voudrais que le No de Facture se change automatiquement après que j'ai enregistrer ma feuille en cliquant sur un bouton. jusque la sa va, mais ensuite pour changer le code de cette façon ci dessous car j'ai plusieurs type de facture a gérer sur un seul compte, aucune idée comment faire
Donc quel est le code a insérer après l'enregistrement :
SI N1=A, NE RIEN CHANGER
Si N4=F, N7+1
SI N4=P, N9+1
SI N4=C, N11+1
SI N4=Q, N13+1
SI N4=X, N15+1
Merci de votre aide si précieuse
Ps: comment faite vous pour insérer dans les message les codes aux même format que dans excel,VBA car moi je fais toujours un copier coller, mais ce n'est pas très lisible.
Bonjour,
Donne-nous un exemple avec un fichier Excel à l'appui. Car l'explication seule que tu as donnée ne suffit pas pour y voir clair.
Salut Ambroise,
Afin de montrer un code de la même manière que dans l'explorer VBA, tu le colles dans ton message, tu le sélectionnes et tu cliques sur "Code" au-dessus.
Si tu nous montrais un fichier avec le bout de code que tu as déjà, ça nous aiderait grandement à t'aider
Cordialement.
EDIT : Salut Raja
Bonjour, je vous joint une feuille explicative, enfin j’espère, car envoyer le fichier, assez compliquer car dans les code il y a plein de chemin bien spécifique et risque de buguer sur un autre poste.
Si dessous mon code Je vais essayer la technique de Yvouille.
Private Sub CommandButton1_Click()
Dim sPath As String, sFic As String
Dim WbkNewfacture As Workbook
' Mémorisé les valeurs nécessaires pour l'enregistrement
sPath = ThisWorkbook.Path & "\Facture\"
sFic = ThisWorkbook.Sheets("Newfacture").Range("AB6") & ".xlsm"
' Définir l'objet WbkContrat
Set WbkNewfacture = Workbooks.Open(Filename:=Range("O43") & "\zznewfacture(NE PAS SUPPRIMER).xlsm")
' Copier la cellule de ce classeur dans celui des contrat
ThisWorkbook.Sheets("Newfacture").Range("AD1:AP43").Copy
WbkNewfacture.Sheets("Feuil5").Range("AD1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
' Sauvegarder le classeur "zContrat" au format Excel sous le nom définit
WbkNewfacture.SaveAs sPath & sFic
sFic = ThisWorkbook.Sheets("Newfacture").Range("AB6") & ".pdf"
WbkNewfacture.Save
' Sauvegarder le classeur "zContrat" au format PDF sous le nom définit
WbkNewfacture.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sPath & sFic, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
' Fermer le classeur enregistré
WbkNewfacture.Close
' Effacer les variables objet
Set WbkNewfacture = Nothing
Sheets("Newfacture").Range("D3").MergeArea.ClearContents
Sheets("Newfacture").Range("G10").MergeArea.ClearContents
Sheets("Newfacture").Range("B32").MergeArea.ClearContents
Sheets("Newfacture").Range("B33").MergeArea.ClearContents
Sheets("Newfacture").Range("F40").MergeArea.ClearContents
Sheets("Newfacture").Range("C12").MergeArea.ClearContents
Sheets("Newfacture").Range("C13").MergeArea.ClearContents
Sheets("Newfacture").Range("C14").MergeArea.ClearContents
Sheets("Newfacture").Range("C15").MergeArea.ClearContents
Sheets("Newfacture").Range("C16").MergeArea.ClearContents
Sheets("Newfacture").Range("C17").MergeArea.ClearContents
Sheets("Newfacture").Range("C18").MergeArea.ClearContents
Sheets("Newfacture").Range("C19").MergeArea.ClearContents
Sheets("Newfacture").Range("C20").MergeArea.ClearContents
Sheets("Newfacture").Range("C21").MergeArea.ClearContents
Sheets("Newfacture").Range("C22").MergeArea.ClearContents
Sheets("Newfacture").Range("C23").MergeArea.ClearContents
Sheets("Newfacture").Range("C24").MergeArea.ClearContents
Sheets("Newfacture").Range("C25").MergeArea.ClearContents
Sheets("Newfacture").Range("C26").MergeArea.ClearContents
Sheets("Newfacture").Range("C27").MergeArea.ClearContents
Sheets("Newfacture").Range("C28").MergeArea.ClearContents
Sheets("Newfacture").Range("C29").MergeArea.ClearContents
Sheets("Newfacture").Range("D35").ClearContents
Sheets("Newfacture").Range("D43").ClearContents
Sheets("Newfacture").Range("I34").ClearContents
Sheets("Newfacture").Range("I35").ClearContents
Sheets("Newfacture").Range("B12:B29").ClearContents
Sheets("Newfacture").Range("G12:G29").ClearContents
Sheets("Newfacture").Range("H12:H29").ClearContents
Sheets("Newfacture").Range("I12:I29").ClearContentsLE CODE A INSERER ICI
End SubSi il faut quel que chose de plus dite mois, pour mois c'est claire, mais je sais ce que je veux.
Merci
Re,
Je ne me m’en sors pas vraiment entre toutes tes explications, soit dans tes messages, soit dans ton fichier.
Alors je te montre un exemple d’incrémentation qui pourrait correspondre à ton besoin, si ce n’est que je n’ai pas du tout traité le cas « si c’est A » car dans ton choix en B2, il n’est pas mentionné.
Si je suis complètement à côté, tu dois me donner de meilleures explications et un fichier qui tient debout.
A te relire.
Salut Ivouille,
tu as tous compris, c'est exactement ça sauf que pour le A c'est vrais que j'ai oublier de l’intégrer a mon fichier, je te le rejoint.
En réalité Si c'est A rien ne doit changer, il garde le no des feuilles existante mais ne change pas. c'est si je dois faire des facture d'essai avant validation de la facture donc le no ne doit pas changer.
Merci t'est un vrais pro
Tu as à nouveau des explications dans ton fil et d’autres dans ton fichier
Je ne comprends pas à quel moment tu aurais un « A » quelque part ?? Je n’en vois nulle part dans ton fichier (sauf en E19, bien entendu).
A te relire (à un seul endroit, s’il te plait).
Pas facile a expliquer,
voir sur fichier,
j’espère que ce sera bon, cette fois,
désolée de prendre ton temps
Désolé, mais tes explications sont vraiment compliquées et peu compréhensibles. Tu parles maintenant de la cellule C5, mais il n’y a rien dans cette cellule. Je présume que tu voulais parler de la cellule C4. Puis tu parles d’un numéro en E2, mais il n’y a que des lettres en E2. Enfin tu me dis que tu n’aurais pas du appeler A quelque chose (mais quoi ?) alors que jusqu’à maintenant tu as parlé de A !
Selon ta troisième ligne d’explications dans le fichier, je pense que tu pourrais vouloir dire que l’incrémentation mise en place ne doit pas avoir lieu s’il est écrit « Oui » en C4. J’ai donc ajouté ceci à mon code. Si ce n’est pas ce que tu désires, tu dois vraiment être plus précis et plus clair dans tes explications.
A te relire.
Tu as tous compris, c'est exactement ça.
Je sais je suis pas douer pour donner des explication, si cela change d,un message a l'autre c'est justement pour essayer de me faire comprendre.
dans tous les cas merci beaucoup