FORUM Tom's Hardware » Programmation » VB / VBA / VBS » condition existance
 

condition existance

Il y a 364 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici
Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : condition existance
 
Plus d'informations

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....
 

Code :
  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 !!


---------------
    akela
 
Un sourire ne coûte rien et produit beaucoup.

zeb
Profil : Modérateur libre
Plus d'informations

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.


Code :
  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 :

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


Alors ?


Message édité par zeb le 22-10-2007 à 11:06:45

---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...

Aller à :
Ajouter une réponse
  FORUM Tom's Hardware » Programmation » VB / VBA / VBS » condition existance
 

Annonces Google