IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[VBA-E]Type d'une feuille excel [Trucs & Astuces]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Juillet 2003
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 34
    Par défaut [VBA-E]Type d'une feuille excel
    bonjour,

    quelqu'un pourrait t'il me dire comment déterminer le type d'une feuille excel c à dire Chart, DialogSheet , Excel4IntlMacroSheet, Excel4MacroSheet et Worksheet.

    En effet, dans mon prog, j'ai une boucle qui recherche dans chacune des feuilles du classeur actif certaine formule mais si l'utilisateur insère une feuillle graphique, la fonction de recherche ne fonctionne plus et mon prog pète ( malgrès ma gestion d'erreur d'allieur ). donc si je pouvai déterminer le type, je pourrais ou non faire le traitement.

    merci d'avance.

  2. #2
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    Par la propriété Type de l'objet Sheet -
    les diverses constantes sont référencées sous excel.XlSheetType

    ex
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if worksheets("Feuil1").type = excel.XlSheetType.xlWorksheet then

  3. #3
    Membre averti
    Inscrit en
    Juillet 2003
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 34
    Par défaut
    oui mais sauf erreur de ma part, si tu écris 'worksheets("Feuil1")', le worksheet signifie forcement que la feuille est de type xlWorksheet.
    En tout cas, si je fais par exemple un MsgBox Worksheets("toto").Name
    et que ma feuille est une DialogSheet et bien ça plante.

  4. #4
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    Sorry, utilises Sheets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if sheets(sheets(1).name).type = excel.XlSheetType.xlWorksheet then
    J'ai fait un peu vite pensant que tu te contenterais de l'essentiel !

  5. #5
    Membre averti
    Inscrit en
    Juillet 2003
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 34
    Par défaut
    soit g du mal soit il y a quelque chose.
    mais selon moi, la propriété Type s'applique effectivement a l'objet Worksheet et non à l'objet Sheets donc cela ne fonctionne pas

  6. #6
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    Si, si mais il y a effectivement un bug Excel dans la valeur de la constante xlchart

    ...................Sheets().type ___________Const ___________ =
    Dialogue…………Nom géré.………………xlDialogSheet.………………-4116
    Macro_Intl…………4.…………………………xlExcel4IntlMacroSheet………4
    Macro…………………3.…………………………xlExcel4MacroSheet……………3
    Feuille …………-4167.………………………xlSheet.…………………………-4167
    Graphique……-4169.………………………xlChart.…………………………-4109
    Donc utilises la valeur plutôt que la constante.

  7. #7
    Membre averti
    Inscrit en
    Juillet 2003
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 34
    Par défaut
    ok merci

    en fait j'avais fait un exemple tout con :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 1 To ActiveWorkbook.Sheets.Count
    MsgBox Sheets(i).Type
    Next i
    et qui donc planter mais cela venais surement du fait que j'avais une feuille dialogue dans mon classeur (xlDialogSheet) car une fois enlever les autres types de feuilles ne posent eux aucun problème. mais vu que apparement la fonction Type n'est pas géré avec ce type de feuille c normal. Faut le savoir quoi.....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA-E] musique sur une feuille Excel
    Par jnmab dans le forum Excel
    Réponses: 2
    Dernier message: 01/04/2007, 11h21
  2. [VBA-E] positionnement dans une feuille excel
    Par fast&furious dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/01/2007, 12h59
  3. [VBA-PP]Ecrire dans une feuille Excel
    Par alpking dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 27/04/2006, 18h18
  4. VBA : copier une image d'une feuille excel à une autre
    Par Equus dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/12/2005, 14h01
  5. [VBA]Userform mobile dans une feuille excel
    Par fikren dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 28/10/2005, 15h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo