XL 2010 Adapter Code VBA copie feuille avec choix nom

richard31

XLDnaute Occasionnel
Bonjour

J'au réussi à créer un code VBA qui permet de copie une feuille existante vers une nouvelle en demandant le nom de la cible pour la nommer . Tout cela en cherchant les commandes de créations de feuilles , copie, copie en fin dernier onglet etc etc .. mais je bloque car je ne fais pas du tout de VBA j'arrive juste a en comprendre parfois les lignes, j'ai réussi à comprendre comment avec count placer la feuille copiée en dernier ^^... Puis le code peut être utilise pour d autres surtout !

Bref ce code donc sélectionne la feuille 'reporting" demande quel mois correspond l'analyse, et copie donc le contenu de la feuille "reporting" vers la nouvelle feuille (qui aura donc le nom choisit)...

le souci est que je ne sais pas mettre un bouton "annuler" sur cette boite de dialogue qui demande le mois ( et donc ferme le code). et que je ne sais pas comme proposer une liste de choix qui correspondrait aux mois à la place de rentrer l information à la main...

Voilu je pense que ce n'est pas compliqué mais je ne trouve pas :( enfin je trouve les lignes pour proposer un choix (une liste ) mais je n'arrive pas le mettre dans le code.

Merki d avance ! fichier joint !

code:

Sub UPDATE()

Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Dim nom As String
Dim nom1 As String
Dim i As Byte
Dim verif As Boolean
Dim dte As Date
Dim dte1 As String
'
' Sauve le classeur actif
ActiveWorkbook.Save
' Sélection la feuille Reporting et la copie
a = Sheets.Count
Sheets("Reporting").Select
Sheets("Reporting").Copy After:=Sheets(a)
' Renommer la feuille.
' Définit dte et dte1 avec l'année en cours
dte = Now()
dte1 = Format(dte, "yyyy")
'
' Définit le message d'invite
Msg = Msg & "Entrez le nom du mois auquel le calcul" & Chr$(10)
Msg = Msg & "doit s'effectuer" & Chr$(10)
Msg = Msg & "caractères interdits : / \ ? * [ ]"
recom:
verif = False
nom = InputBox(Msg, "UPDATE Reporting ")
If nom = "" Then
GoTo recom
Else
For i = 1 To Sheets.Count
If Sheets(i).Name = nom Then
verif = True
End If
Next
End If
'
If verif = True Then
MsgBox "La feuille " & nom & " existe déjà, veuillez choisir un autre nom!"
GoTo recom:
End If
'
nom1 = nom & " " & dte1
'
verif = False
For i = 1 To Sheets.Count
If Sheets(i).Name = nom1 Then
verif = True
End If
Next
'
If verif = True Then
MsgBox "La feuille " & nom1 & " existe déjà, veuillez choisir un autre nom!"
GoTo recom:
End If
'
ActiveSheet.Name = nom1
End Sub
 

Pièces jointes

  • Reporting test2 30-07.xlsm
    106.2 KB · Affichages: 55
Dernière édition:

phlaurent55

Nous a quittés en 2020
Repose en paix
Bonjour Richard,

dans ton code, chaque fois que tu rencontres: GoTo recom

insère les trois lignes suivantes:

Application.DisplayAlerts = False
Sheets(Sheets.Count).Delete
Application.DisplayAlerts = True
GoTo recom

à+
Philippe
 

richard31

XLDnaute Occasionnel
Bonjour Richard,

dans ton code, chaque fois que tu rencontres: GoTo recom

insère les trois lignes suivantes:

Application.DisplayAlerts = False
Sheets(Sheets.Count).Delete
Application.DisplayAlerts = True
GoTo recom

à+
Philippe

Merci pour ton retour qui se font rares :( j abandonne pour l instant car je ne connais pas le VBA et je m'arrache les cheveux .....

j'ai un UserForm avec boite de dialogue, j ai une macro et j arrive pas afficher ce putain de module qui donc demande juste le mois (avec une liste déroulante ) et copie ensuite tout simplement la feuille 'reportig" dedans en vérifiant que ce n'est pas déjà fait.. en plus les mois s'affichent en doubles, j en peux plus de cette m...
 

Pièces jointes

  • fichier de travail Reporting 01-08.xlsm
    192.3 KB · Affichages: 41

phlaurent55

Nous a quittés en 2020
Repose en paix
Re,

Tout d'abord je n'ai jamais rencontré de "putain" de module et de "merde" d'Excel mais des demandeurs ayant très peu de patience, ça OUI.

En voyant ton code dans la question initialement posée, je crois que les inventeurs de l'ENIAC vont se retourner dans leurs tombes, tu t'y prends dans le mauvais sens.

La procédure montre que tu crées d'abord une nouvelle feuille et qu'ensuite tu demandes le nom qu'il faut lui attribuer et c'est là que ça commence à coincer car dans les cas où le nom ne convient pas ou dans le cas où tu veux annuler, INPUTBOX revient à la charge et c'est pour cela que tu as des soucis avec le bouton "Annuler".


IDEALEMENT,
1: il faut d'abord demander le nom de la feuille à créer
2: ensuite tester si le nom est accepté ou pas
2-1 si le nom n'est pas valable, revenir au point 1
2-2 si le nom est accepté, créer la nouvelle feuille
3- continuer éventuellement la procédure (dans ton cas, c'est la recopie de la feuille Reporting)

N'étant pas sur mon PC, je ne sait pas tester ton dernier fichier joint mais voici un exemple schématisé de ce qu'il faut faire


à+
Philippe

100.jpg
 

richard31

XLDnaute Occasionnel
Re,

Tout d'abord je n'ai jamais rencontré de "putain" de module et de "merde" d'Excel mais des demandeurs ayant très peu de patience, ça OUI.

En voyant ton code dans la question initialement posée, je crois que les inventeurs de l'ENIAC vont se retourner dans leurs tombes, tu t'y prends dans le mauvais sens.

La procédure montre que tu crées d'abord une nouvelle feuille et qu'ensuite tu demandes le nom qu'il faut lui attribuer et c'est là que ça commence à coincer car dans les cas où le nom ne convient pas ou dans le cas où tu veux annuler, INPUTBOX revient à la charge et c'est pour cela que tu as des soucis avec le bouton "Annuler".


IDEALEMENT,
1: il faut d'abord demander le nom de la feuille à créer
2: ensuite tester si le nom est accepté ou pas
2-1 si le nom n'est pas valable, revenir au point 1
2-2 si le nom est accepté, créer la nouvelle feuille
3- continuer éventuellement la procédure (dans ton cas, c'est la recopie de la feuille Reporting)

N'étant pas sur mon PC, je ne sait pas tester ton dernier fichier joint mais voici un exemple schématisé de ce qu'il faut faire


à+
Philippe

Regarde la pièce jointe 994381
merci pour ton aide ! mais j y ai passé des heures et des heures, donc patient mais à un moment un craque^^
je vais revoir cela mais je pense que je c'est hors de ma portée..

merci !
 

richard31

XLDnaute Occasionnel
merci milles fois ! !!

et j'arrive à saisir à peut près la logique du coup ... j'ai rajouté une ligne sur le classeur pour ouvrir le fichier des sources automatiquement lors du lancement du fichier !

sympa de m avoir aidé je débute VBA autant en formules j'arrive en m'en sortir mais le VB c est complexe tous seul ...

Bref merki ^^
 

Statistiques des forums

Discussions
312 169
Messages
2 085 926
Membres
103 043
dernier inscrit
nouha nj