Microsoft 365 Ecraser onglet par copier coller [RESOLU]

romubzh35

XLDnaute Occasionnel
Bonjour à toutes et à tous
j'ai une macro qui créé un nouvel onglet et renomme l'onglet avec la date du jour.

VB:
Sub Macro13()
 
    Cells.Select 'selection de la zone à copier
    Selection.Copy 'copie des cellules
    Sheets.Add After:=ActiveSheet 'ajouter onglet avec l'onglet actif
    Cells.Select 
    ActiveSheet.Paste
    Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
    , SkipBlanks:=False, Transpose:=False
 
    ActiveSheet.Name = Format(Now, "dd-mm-yyyy") 'renommer onglet avec date du jour
        Range("A5").Select
        Application.CutCopyMode = False
        Sheets("TCD").Select 'retourner sur onglet TCD
        Range("A5").Select 'selectionner cellule A5
    Application.CutCopyMode = False
    
End Sub

par contre j'aurais aimé savoir comment faire dans le cas ou j'ai déjà créé ce nouvel onglet avec la date du jour mais je souhaite l'ecraser pour refaire un copier coller de la feuille TCD vers l'onglet avec la date du jour sans le renommer
si il est déjà créé j'aurais aimé ajouté un msgbox "Etes vous sur de vouloir écraser cet onglet ?"

merci d'avance
 

vgendron

XLDnaute Barbatruc
bonjour

il faut vérifier l'existence de l'onglet avant. avec cette fonction par exemple

VB:
Function FeuilleExiste(NomFeuille as string) as boolean
    FeuilleExiste=false
    for each ws in activeworkbook.sheets
       if ws.name=NomFeuille then
            FeuilleExiste=true
            exit function
      end if
  next ws
end function

Sub test
  if  FeuilleExiste("NomOnglet") then msgbox "cette feuille existe déjà"

end sub

Ensuite;. tu ne peux pas ecraser un onglet..
soit, tu le supprimes pour le recréér
soit tu remplaces le contenu de l'onglet, en le vidant et remplissant à nouveau
 

romubzh35

XLDnaute Occasionnel
bonjour

il faut vérifier l'existence de l'onglet avant. avec cette fonction par exemple

VB:
Function FeuilleExiste(NomFeuille as string) as boolean
    FeuilleExiste=false
    for each ws in activeworkbook.sheets
       if ws.name=NomFeuille then
            FeuilleExiste=true
            exit function
      end if
  next ws
end function

Sub test
  if  FeuilleExiste("NomOnglet") then msgbox "cette feuille existe déjà"

end sub

Ensuite;. tu ne peux pas ecraser un onglet..
soit, tu le supprimes pour le recréér
soit tu remplaces le contenu de l'onglet, en le vidant et remplissant à nouveau
Ok merci pour ta réponse mais du coup comment j'indique le nom de l'onglet dans la ligne ci dessous?
if FeuilleExiste("NomOnglet") then msgbox "cette feuille existe déjà"
 

Discussions similaires

Statistiques des forums

Discussions
312 165
Messages
2 085 882
Membres
103 010
dernier inscrit
Sys974