Correction de code copy de feuille

  • Initiateur de la discussion Initiateur de la discussion MacMac
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

MacMac

XLDnaute Occasionnel
Bonsoir le forum ,

Voila je possede un code pour copier une feuille nomme base dans mon application que voici

Private Sub CommandButton1_Click()
Dim Nomfeuille As String, Entree As String
Entree = InputBox("Saisissez le nom de la feuille d'heure que vous voulez creer exemple : 010106 ")
If Len(Entree) = 6 Then
Nomfeuille = Left(Entree, 2) & "." & Mid(Entree, 3, 2) & "." & Right(Entree, 2)
'If Nomfeuille <>
Sheets("Base").Copy before:=Worksheets(1) 'ou after:=Worksheets(Worksheets.count)
ActiveSheet.Name = Nomfeuille

Msg = "Votre Feuille heures a été sauvegardé sous le nom que lui avez donnez."
Title = "Sauvegarde du rapport journalier"
Style = vbOKOnly + vbInformation
Reponse = MsgBox(Msg, Style, Title)

End If

End Sub
Concernant ce code est exelent mais il manque un petit truc dedans pour l'appofiner concernat ma question

je voudrai que quand je copie cette feuille et que que quand je la nome d'un nom et quelle existe deja je voudrai qu'il m'avertisse et que je puisse le renommer differament


Merci de votre aide presieuse

@+
 
Re : Correction de code copy de feuille

Bonsoir Macmac, bonsoir le forum,

Je te propose ci-dessous ta macro modifiée :

Code:
Private Sub CommandButton1_Click()
Dim Nomfeuille As String, Entree As String
Dim f As Worksheet 'déclare la variable f
 
Début:
Entree = InputBox("Saisissez le nom de la feuille d'heure que vous voulez creer exemple : 010106 ")
 
For Each f In Sheets
 
    If UCase(f.Name) = UCase(Entree) Then 'accepte les MAJUSCULES/minuscules comme identiques
        MsgBox "Cet onglet existe déja !"
        GoTo Début:
    End If
 
Next f
 
If Len(Entree) = 6 Then
    Nomfeuille = Left(Entree, 2) & "." & Mid(Entree, 3, 2) & "." & Right(Entree, 2)
    'If Nomfeuille <>
    Sheets("Base").Copy before:=Worksheets(1) 'ou after:=Worksheets(Worksheets.count)
    ActiveSheet.Name = Nomfeuille
    Msg = "Votre Feuille heures a été sauvegardé sous le nom que lui avez donnez."
    Title = "Sauvegarde du rapport journalier"
    Style = vbOKOnly + vbInformation
    Reponse = MsgBox(Msg, Style, Title)
End If
End Sub
 
Re : Correction de code copy de feuille

salut macmac

voici un eventuel code
drapeau=true
do while drapeau=true
drapeau=false
rep = inputbox "Nom de la page"
for i = 1 to worksheets.count
if worksheet(i).name = rep then drapeau = true
next i
loop
desolé, bonsoir robert, je suis tres lent à repondre par manque d'assurance de mon vba
salutations
 
Dernière édition:
Re : Correction de code copy de feuille

Bonsoir ,Robert et wilfried_42


Robert,
concernant ton code je crois qu'il a un sousi .
je vient de le remplacer le mien par le tien et j'ai la meme erreur qu'un paravent
en nomment la feuille sous un nom deja existant
il doit manquer un truc et je n'arrive pas a dechiffrer le code car novice en la matiere de lectur des code et dechiffrage je ne fait que recopier les code que je trouve pour appofiner mon application

wilfried_42, je ne comprend pas bien ton code comment l'appliquer au mien sans trop changer celui que je possede .

mais je tien quand meme a vous remercier de la rapidite vous faite pour servir les gens comme moi tres novice en la matiere 😀 😀

@+
 
Re : Correction de code copy de feuille

tu ajoutes au dessu de ton inputbox les 3 premieres lignes
et tu ajoutes les quatre deriere inputbox apres to inputbox
je dis 4 car j'ai oublié un next i avant loop
dans le if worksheets(i) = rep tu changes rep par Entree

A+
 
Re : Correction de code copy de feuille

Bonsoir Macmac, Wilfried, bonsoir le forum,

Tu as raison Macmac j'avais testé avec "Feuil1, Feuil2" mais pas avec 6 numéros. Désolé. Voici la modif qui devrait te convenir :

Code:
Private Sub CommandButton1_Click()
Dim Nomfeuille As String, Entree As String
Dim f As Worksheet 'déclare la variable f
 
Début:
Entree = InputBox("Saisissez le nom de la feuille d'heure que vous voulez creer exemple : 010106 ")
 
For Each f In Sheets
 
    If UCase(f.Name) = UCase(Entree) Or UCase(f.Name) = _
    UCase(Left(Entree, 2) & "." & Mid(Entree, 3, 2) & "." & Right(Entree, 2)) Then 'accepte les MAJUSCULES/minuscules comme identiques
        MsgBox "Cet onglet existe déja !"
        GoTo Début:
    End If
 
Next f
 
If Len(Entree) = 6 Then
    Nomfeuille = Left(Entree, 2) & "." & Mid(Entree, 3, 2) & "." & Right(Entree, 2)
    'If Nomfeuille <>
    Sheets("Base").Copy before:=Worksheets(1) 'ou after:=Worksheets(Worksheets.count)
    ActiveSheet.Name = Nomfeuille
    Msg = "Votre Feuille heures a été sauvegardé sous le nom que lui avez donnez."
    Title = "Sauvegarde du rapport journalier"
    Style = vbOKOnly + vbInformation
    Reponse = MsgBox(Msg, Style, Title)
End If
End Sub
 
Re : Correction de code copy de feuille

Re Bonsoir

Je ne dirais que un grand merci pour ses reponse rapide et efficase

cela fonctionne a merveille Robert🙂 🙂

et wilfried_42 je comprend mieux ton code avec tes explications comme je disais plus haut je suis novice alors il faut tout me dire desoler 😀 😀

@+ MacMac
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
502
Réponses
3
Affichages
593
Réponses
3
Affichages
557
Réponses
8
Affichages
1 K
Retour