Copier/coller une feuille
Résolu/Fermé
A voir également:
- Copier/coller une feuille
- Copier coller pdf - Guide
- Copier une vidéo youtube - Guide
- Copier-coller - Accueil - Windows
- Symbole clavier copier coller - Guide
- Historique copier-coller android - Guide
5 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
15 juil. 2010 à 10:12
15 juil. 2010 à 10:12
Salut,
Qu'est ce qui ne fonctionne pas dans ton code?
Qu'est ce qui ne fonctionne pas dans ton code?
Sub Copie_Modele() Sheets("DPE").Copy , Before:=Sheets("DPE") ActiveSheet.Name = Format(Date, "dd mmmm") End Sub
chossette9
Messages postés
4239
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1 308
15 juil. 2010 à 10:17
15 juil. 2010 à 10:17
Bonjour,
quel est exactement ton problème ? En exécutant ta macro j'obtiens une feuille "07 2010", copie de la feuille DPE. C'est le nom de la feuille qui ne te convient pas ?
quel est exactement ton problème ? En exécutant ta macro j'obtiens une feuille "07 2010", copie de la feuille DPE. C'est le nom de la feuille qui ne te convient pas ?
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
15 juil. 2010 à 10:23
15 juil. 2010 à 10:23
Salut Chossette,
Oui je pense que c'est le nom qui ne lui convient pas (d'où ma solution) car : avec le mois et la date du jour
Bonne journée à toi
Oui je pense que c'est le nom qui ne lui convient pas (d'où ma solution) car : avec le mois et la date du jour
Bonne journée à toi
chossette9
Messages postés
4239
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1 308
15 juil. 2010 à 10:24
15 juil. 2010 à 10:24
Ah ok ! Désolé je n'avais pas vu ta réponse ! Je pense qu'effectivement ça fonctionnera mieux comme ça !
Bonne journée également.
Bonne journée également.
Merci pour vos réponses.
Le code marche bien cependant comment mettre un message d'erreur pour dire que l'onglet a déjà été crée si jamais la personne essaye de la faire 2 fois de suite:
Sheets("DPE").Copy , Before:=Sheets("DPE")
ActiveSheet.Name = Format(Date, "dd mmmm")
Range("B13").Select
If ActiveSheet.Name = Format(Date, "dd mmmm") Then
MsgBox "Historique déjà effectué ", vbExclamation
Merci :D
Le code marche bien cependant comment mettre un message d'erreur pour dire que l'onglet a déjà été crée si jamais la personne essaye de la faire 2 fois de suite:
Sheets("DPE").Copy , Before:=Sheets("DPE")
ActiveSheet.Name = Format(Date, "dd mmmm")
Range("B13").Select
If ActiveSheet.Name = Format(Date, "dd mmmm") Then
MsgBox "Historique déjà effectué ", vbExclamation
Merci :D
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
Modifié par pijaku le 15/07/2010 à 10:51
Modifié par pijaku le 15/07/2010 à 10:51
Pour cela, il vous faut boucler au préalable sur toutes les feuilles du classeur actif :
pour la gestion des boucles, voir les tutoriels de Silkyroad
Dim Ws As Worksheet For Each Ws In ThisWorkbook.Worksheets If Ws.Name = Format(Date, "dd mmmm") Then MsgBox "Historique déjà effectué ", vbExclamation Exit Sub End If Sheets("DPE").Copy , Before:=Sheets("DPE") ActiveSheet.Name = Format(Date, "dd mmmm")
pour la gestion des boucles, voir les tutoriels de Silkyroad
Désolé j'ai encore un souci
Voilà j'ai changé mon code avec une boucle d'erreur cependant la dernière ligne génère encore une erreur !! Je sais pas pourquoi :
Sub Erreur()
Dim feuilles As Worksheet
On Error Resume Next
For Each feuilles In ThisWorkbook.Worksheets
On Error GoTo 0
If Not feuilles Is Nothing Then
MsgBox "La feuille existe dans le classeur."
End If
Next
Sheets("DPE").Copy , Before:=Sheets("DPE")
ActiveSheet.Name = Format(Date, "dd mmmm yyyy")
End Sub
Merci
Voilà j'ai changé mon code avec une boucle d'erreur cependant la dernière ligne génère encore une erreur !! Je sais pas pourquoi :
Sub Erreur()
Dim feuilles As Worksheet
On Error Resume Next
For Each feuilles In ThisWorkbook.Worksheets
On Error GoTo 0
If Not feuilles Is Nothing Then
MsgBox "La feuille existe dans le classeur."
End If
Next
Sheets("DPE").Copy , Before:=Sheets("DPE")
ActiveSheet.Name = Format(Date, "dd mmmm yyyy")
End Sub
Merci
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
Modifié par pijaku le 15/07/2010 à 11:56
Modifié par pijaku le 15/07/2010 à 11:56
Hum hum... Ou as tu été cherché cette macro?
En fait, cette macro n'est pas adaptée à ton cas...
Essaie simplement ceci :
En fait, cette macro n'est pas adaptée à ton cas...
Essaie simplement ceci :
Sub CreerFeuille () Dim Ws As Worksheet For Each Ws In ThisWorkbook.Worksheets If Ws.Name = Format(Date, "dd mmmm yyyy") Then MsgBox "Historique déjà effectué ", vbExclamation Exit Sub End If Next Ws Sheets("DPE").Copy , Before:=Sheets("DPE") ActiveSheet.Name = Format(Date, "dd mmmm yyyy") End Sub
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
15 juil. 2010 à 12:09
15 juil. 2010 à 12:09
Si tu veux intégrer à ta procédure la notion de "gestion d'erreur", tu as dans le site que je t'ai conseillé plus haut cette macro :
Que tu peux adapter à ta situation comme ceci :
Sub laMacro() Dim Ws As Worksheet 'Evite le message d'erreur si la feuille n'existe pas. On Error Resume Next Set Ws = ThisWorkbook.Worksheets("NomFeuille") On Error GoTo 0 '(Ws = Nothing quand l'objet attribué à la variable n'existe pas) If Not Ws Is Nothing Then MsgBox "La feuille existe dans le classeur." Else MsgBox "La feuille n'existe pas dans le classeur." End If End Sub
Que tu peux adapter à ta situation comme ceci :
Sub laMacro() Dim Ws As Worksheet Dim NomFeuille As String NomFeuille = Format(Date, "dd mmmm yyyy") On Error Resume Next Set Ws = ThisWorkbook.Worksheets(NomFeuille) On Error GoTo 0 If Not Ws Is Nothing Then MsgBox "La feuille existe dans le classeur." Else Sheets("DPE").Copy , Before:=Sheets("DPE") ActiveSheet.Name = NomFeuille End If End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question