Se connecter avec
S'enregistrer | Connectez-vous

condition existance

Dernière réponse : dans Programmation

bonjour,

encore des questions sur excel.
je suis toujours débutant !!
j'ai une macro qui créer un nouvelle onglet avec des données d'un tableau. je pense que ma macro est moche (mal écrit), mais bon, la n'est pas mon probleme !
Quand je recommence a creer mon graphique, j'ai un bug qui apparait ! l'onglet que j'ai créer precedement existe déja !!

je voudrais pouvoir supprimer un onglet si il exist déjà. Dans l'aide, j'ai vu des trucs avec Exists... mais bon... sa n'a pas l'air de marcher....

  1. If Sheets.SheetsExists("Graphe TRG") = True Then
  2. Sheets("Graphe TRG").Clear
  3. End If


bon, déjà, vous me direz, SheetExist n'existe pas... ok, je suis d'accord... mais dans l'aide, j'avais vu plusieurs exemple avec folderExist ou FilesExist...
enfin, bref, vous l'aurez compris, je suis un peu perdu !

Merci d'avance de me mettre un peu de lumière dans ces ténébres qui sont ma programmation !!

Autres pages sur : condition existance

Lassé par la pub ? Créez un compte
Expert Programmation

Non, SheetsExists n'existe pas. Mais on peut la créer.
On va l'appeler SheetExists plutôt. (Tu as l'air aussi peu doué en anglais qu'en français :/  ) :

  • Donner le nom de la feuille
  • Parcourir toutes les feuilles, jusqu'à trouver celle dont on a donné le nom.
  • Renvoyer vrai ou faux.

    1. Function SheetExists(Name As String)
    2. Dim s As Sheet
    3. SheetExists = False
    4. For Each s In Sheets
    5. If s.Name = Name Then
    6. SheetExists = True
    7. Exit For
    8. End If
    9. Next
    10. End Function


    Pas mal, qu'en penses-tu ?
    Wouais, t'as raison : "peut mieux faire". On cherche indistinctement les feuilles de calcul et les graphes.

    Allez hop, on recommence :
    1. Const seWorksheet = 1
    2. Const seChart = 2
    3. Const seAny = 0
    4.  
    5. Function SheetExists(name As String, Optional sheettype = seAny)
    6. Dim shs
    7. Dim s
    8. SheetExists = False
    9. If sheettype = seWorksheet Then Set shs = Worksheets
    10. If sheettype = seChart Then Set shs = Charts
    11. If sheettype = seAny Then Set shs = sheets
    12. For Each s In shs
    13. If s.name = name Then
    14. SheetExists = True
    15. Exit For
    16. End If
    17. Next
    18. End Function

    Alors ?
    Lassé par la pub ? Créez un compte