Incrémenter un numéro de Bon de Livraison "+1 "
Bonjour!
J'ai besoin d'aide car ça fait des heures que je cherche a faire une petite chose simple (je crois).
Je ne sais pas programmer en VBA, je ne fais que de petites actions via des macro enregistrées (sans code).
Dans mon onglet "commande" je voudrais une Macro "nouvelle commande" pour enregistrer une copie de la feuille "commande" puis repasser sur un nouvel onglet "commande" vierge. La subtilité: j'aimerais que sur ce nouvel onglet le numéro de BL soit incrémenté de 1, et donc que chaque nouveau BL ait un numéro à lui dans la case D11.
J'ai en partie réussi , mon BL n°2 apparait, mais ensuite si je fais encore la Macro "nouvelle commande" ça reste a 2...
J'espère etre claire...
je voulais aussi créer une macro "enregistrer en PDF" et que le nom du fichier soit le numéro de la case D11 (=n° du BL), mais pareil ca ne marche pas au delà de 2...
Si quelqu'un pouvait me montrer une solution avec enregistrement (sans code car je ne connais pas du tout) ce serait top !!
Merci d'avance pour votre temps.
Chrystèle
Bonjour Chrystèle
Des petits conseils si je puis me permettre
1) Nommes tes procédures plutôt que de laisser "MacroXX"
2) N'utilise pas de select, ça accélérera ton code
Sinon voici le code avec la procédure nommée
Sub NouvelCde()
Dim sChemin As String, sNomFic As String
Dim DLig As Long
' Chemin actuel
sChemin = ThisWorkbook.Path
If Right(sChemin, 1) <> "\" Then sChemin = sChemin & "\"
' Définir le nom du nouveau fichier
sNomFic = Format(Now(), "yyyymmdd-hhmmss") & ".xlsx"
' Désactiver l'affichage un instant
Application.ScreenUpdating = False
' Créer une copie dans un nouveau classeur
' Pas besoin à mon avis de la garder dans le classeur principal
Sheets("Commandes").Copy
' Avec l'objet conteneur
With ActiveWorkbook
.SaveAs sChemin & sNomFic
.Close Savechanges:=False
End With
' Réactiver l'affichage
Application.ScreenUpdating = True
' Petit message dans al barre de statut
Application.StatusBar = "Fichier : " & sNomFic & " créé dans le dossier : " & sChemin
' Avec l'objet conteneur
With Sheets("Commandes")
' Effacer le client
.Range("K3").ClearContents
' Dernière ligne de la commande
DLig = .Range("C" & Rows.Count).End(xlUp).Row
' Effacer les lignes de commandes
.Range("C15:D" & DLig).ClearContents
' Ajouter 1 au numéro de BL
.Range("D11").Value = .Range("D11").Value + 1
.Range("D12").Select
End With
End SubA+
Whaou ca a l'air de marcher! Merci merci Bruno!
j'ai pas encore bien tout compris du code mais merci pour les commentaires ca va m'aider.
Oui je crois que je manque de rigueur pour le moment mais comme je ne vais pas lire les codes, je ne fais que avec l'enregistreur je suis obligée de selectionner. en tout cas ca donne envie d'essayer!
Bonne soirée j'arret pour ce soir j'ai les yeux qui ne clignent plus lol