Macro pr dupliquer un onglet (uniquement les valeurs), le renommer...

Christian0258

XLDnaute Accro
Bonsoir à tout le forum,

Je souhaiterais votre aide pour l'écriture d'une macro qui devra dupliquer un onglet ;

-depuis la feuille nommée BD

-1) dupliquer cet onglet (sans ses fonctions ni formules, uniquement les valeurs)
-2) le renommer du contenu de la cellule B4 (toujours type "mmmm aaaa" expl juillet 2014
-3) si l'onglet existe déjà proposer de l'écraser ou non
-4) le placer en dernier

Merci pour votre aide.

Bien à vous,
Christian
 

Yaloo

XLDnaute Barbatruc
Re : Macro pr dupliquer un onglet (uniquement les valeurs), le renommer...

Bonsoir Christian,

Avec cette macro, attention il faut que ta cellule B4 soit au format "texte"

VB:
Sub Duplicata()
  Sheets("BD").Copy After:=Sheets(Sheets.Count)
  Cells.Copy
  Cells.PasteSpecial Paste:=xlPasteValues
  Application.CutCopyMode = False
  [A1].Select
  If IsError(ActiveSheet.Name = [D4]) Then
    ActiveSheet.Name = [D4]
   Else
    If MsgBox("Cet onglet existe déjà, voulez-vous l'écraser ?", vbYesNo, "Ecrasement") = vbYes Then
      Application.DisplayAlerts = 0
      Sheets([D4].Value).Delete
      ActiveSheet.Name = [D4].Value
    End If
  End If
End Sub

A+

Martial
 

Christian0258

XLDnaute Accro
Re : Macro pr dupliquer un onglet (uniquement les valeurs), le renommer...

Re, le forum, Yaloo,

Merci pour ton aide, Yaloo.
Après essais la macro crée un onglet BD (2) puis me dis : cet onglet existe.....j'écrase et ça plante "erreur exécution"...
PS : j'ai corrigé le nom onglet doit faire référence à la cellule B4 et non D4. (B4 à bien un format personnalisé ; mmmm aaaa)

Encore merci,Martial ,pour ton aide, à te lire.

Bien amicalement,
Christian
 

Yaloo

XLDnaute Barbatruc
Re : Macro pr dupliquer un onglet (uniquement les valeurs), le renommer...

Re,

Bon alors avec celle-là :

VB:
Sub Duplicata()
Dim dat$
   Sheets("BD").Copy After:=Sheets(Sheets.Count)
   Cells.Copy
   Cells.PasteSpecial Paste:=xlPasteValues
   Application.CutCopyMode = False
   [A1].Select
   dat = Format([B4], "mmmm yyyy")
   On Error GoTo 1
   ActiveSheet.Name = dat
   Exit Sub
1:
Application.DisplayAlerts = 0
If MsgBox("Cet onglet existe déjà, voulez-vous l'écraser ?", vbYesNo, "Ecrasement") = vbYes Then
  Sheets(dat).Delete
  ActiveSheet.Name = dat
 Else
  ActiveSheet.Delete
End If
End Sub

Si ça ne fonctionne pas, merci de mettre un fichier exemple anonymisé.

A+

Martial
 

Christian0258

XLDnaute Accro
Re : Macro pr dupliquer un onglet (uniquement les valeurs), le renommer...

Re, le forum, Yaloo

Je reviens sur ce macro de, Yaloo post 4, pour une petite modif...
Sur la feuille BD, qui est dupliquée, il y a un bouton "Zone de texte 2" pour lancer la macro, je ne souhaite pas, sur les copies, faire apparaître ce bouton "Zone de texte2)..j'ai essayé d'ajouter cette commande ; ActiveSheet.Shapes(1).Delete,
sans réussir...

Pourriez-vous me dire.

Merci pour votre aide.
Christian
 

Yaloo

XLDnaute Barbatruc
Re : Macro pr dupliquer un onglet (uniquement les valeurs), le renommer...

Bonsoir Christian,

L'enregistreur de macro te donnerai :
VB:
ActiveSheet.Shapes.Range(Array("Zone de texte 2")).Select
    Selection.Delete

que tu peux réduire à :
VB:
ActiveSheet.Shapes.Range(Array("Zone de texte 2")).Delete

A+

Martial
 

Christian0258

XLDnaute Accro
Re : Macro pr dupliquer un onglet (uniquement les valeurs), le renommer...

Re, le forum, Yaloo,

Je reviens, une dernière fois j'espère...lol, pour vous demander pourquoi le dernier bout de code (issu de l'enregistreur) fait planter la macro de Yaloo, que je remercie à nouveau.
Voici ce que j'ai ajouté après ActiveSheet.Name = dat:

ActiveSheet.Shapes.Range(Array("ZoneTexte 1")).Delete
ActiveSheet.Names("DatesBD").Delete
ActiveSheet.Names("HrsMoisBD").Delete
ActiveSheet.Names("NomsBD").Delete
ActiveSheet.FormatConditions.Delete c'est ce code qui fait planter cette macro?

Merci pour votre aide.
Bien à vous,
Christian
 

Christian0258

XLDnaute Accro
Re : Macro pr dupliquer un onglet (uniquement les valeurs), le renommer...

Re, le forum, Yaloo,

Bonsoir Yaloo, je parles de ta macro post4.

Je souhaite copier la feuille BD, sans les formules ça c'est Ok dans ta macro, mais aussi sans sa Zone de Texte 1, sans ses 3 zones nommées (citées post9) et sans ses formats conditionnels.

Dans l'attente de vous lire, merci à tous.

Bien à vous,
Christian
 

Yaloo

XLDnaute Barbatruc
Re : Macro pr dupliquer un onglet (uniquement les valeurs), le renommer...

Re,

Comme tu te trouves sur la feuille tu peux écrire
VB:
Cells.FormatConditions.Delete

Cells et non ActiveSheet
Directement issu de l'enregistreur de macro ;)

Bien à toi

Martial
 

Discussions similaires

Statistiques des forums

Discussions
312 165
Messages
2 085 884
Membres
103 017
dernier inscrit
pierre noyer