Macro Excel copier et implémenter une cellule chaque fois
Bonjour,
je souhaite ajouter automatiquement des feuilles dans mon classeur Excel de demande d'achat, en partant d'une copie de l'original vide (1ere feuille) et en incrémentant automatiquement chaque fois le nom de la feuille (format numérique), numéro de la demande d'achat (Cellule F5) et date de création de la feuille (Cellule C5). mes recherches m'ont permis d'avoir la macro en PJ qui me donnent des solutions acceptables, sauf pour l'incrémentation automatique du numéro de la demande d'achat (Cellule F5). Pouvez-vous m'aider à avoir un code pour ce problème?
Sub NouvelleDA()
Dim s As String
Dim i As Integer
s = _
InputBox("Veuillez saisir le numéro de la DA!", _
"Attribuer des noms de feuille", "Feuil1")
If s = "" Then Exit Sub
i = Sheets.Count
On Error Resume Next
Sheets(1).Copy After:=Sheets(i)
ActiveSheet.Name = s
Range("C5").Value = Now()
End Sub
Bonjour Hervé alias 2.1.0.0 et
Une petite présentation ICI serait la bienvenue
Si vous ne l'avez pas encore fait, je vous invite à lire la charte du forum [A LIRE AVANT DE POSTER]
qui vous aidera dans vos demandes et réponses sur ce forum
Ainsi que sur les fonctionnalités (Nouveau Forum au bas de page notamment)
Sinon, voici un code qui devrait répondre à votre demande
Sub NouvelleDA()
Dim Num As Long, i As Integer
Dim sNum As String
Dim Sht As Worksheet
' Initialiser les variables
i = 1: Num = Sheets(1).Range("F5"): sNum = Num
' En cas d'erreur on continue
On Error Resume Next
' Définir la feuille avec le numéro 1
Set Sht = Sheets(sNum)
' Tant qu'il n'y a pas d'erreur
Do While Err.Number = 0
' On incrémente
i = i + 1: Num = Num + 1: sNum = Num
' On définit la nouvelle feuille
Set Sht = Sheets(sNum)
Loop
' Erreur
On Error GoTo 0
' On copie la 1ère feuille
Sheets(1).Copy After:=Sheets(i - 1)
' On donne le dernier numéro calculé
ActiveSheet.Name = sNum
'
Range("C5").Value = Now()
End Sub
Merci de votre participation
Cordialement
Nota : utilisez le centre de confidentialité d'Excel pour effacer les informations personnelles
Merci déjà pour ta réaction rapide BrunoM45
J'ai essayé ton code, il crée la nouvelle feuille avec le bon nom avec succès. pour la date je pense que c'est bon aussi. mais mon problème est toujours pas vraiment résolu: il n'incrémente pas la Cellule F5. la cellule F5 doit avoir le même numéro que le nom de la feuille.
Merci d'avance et merci pour les remarques sur la confidentialité.
Re,
C'est pourtant simple
' On donne le dernier numéro calculé
ActiveSheet.Name = sNum
Range("F5").Value = sNum
Range("C5").Value = Now()
c'est juste une blague.
Merci infiniment, ca marche du tonnerre. espérons maintenant que la dame des achats me laisse tranquille
MERCI...