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

VBA Discussion :

Comment savoir si un tableau a été initialisé


Sujet :

VBA

  1. #1
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 258
    Points : 108
    Points
    108
    Par défaut Comment savoir si un tableau a été initialisé
    bonjour

    savez vous comment on fait pour savoir si un tableau a été initialisé?

    Merci

  2. #2
    Membre régulier Avatar de doringen
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 73
    Points : 87
    Points
    87
    Par défaut
    question peut-être curieuse, mais qu'entends tu exactement par "initialiser" ? parce que si tu y vois l'effacement d'une plage donnée de cellules, il faudrait travailler avec un
    qui travaillerait en permanence et enregistrerait le changement "initialisation" sous forme d'un booléen, ce qui ralentirait quand même pas mal ton activité sur le classeur concerné...
    J´ai l´habitude de coder comme un lance-grenades
    Alors ne vous étonnez pas si mes macros vous pétent dans les doigts...

  3. #3
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Ça dépend du type de valeur... l'environnement VB initialise toujours les variables et les tableaux. Les valeurs numériques, y compris les Dates et les currency sont initialisées à zéro, les valeurs de chaînes par une chaîne vide (""), les variants... Heu... je crois que ça reste vide (empty).

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Oui, (bonjour zaza) ou alors, inspiré d'un code de SilkyRoad pour supprimer les feuilles de calculs vides :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set LaFeuille = Worksheets("TaFeuille")
            If LaFeuille.UsedRange.Cells.Address = "$A$1" And _
                  IsEmpty(LaFeuille.Range("A1")) And LaFeuille.Shapes.Count = 0 Then msgbox "LaFeuille " & LaFeuille.name & " est vide"
    c'est pas mal non plus...
    A question vague réponse évasive.
    Précise ce que tu veux faire, dans Excel ? Word ? PowerPoint ? Vider des cellules ? Bref, quelle est la nature de ton tableau ? Comment est-il déclaré ? etc. Un bout d'exemple, à défaut de code, nous aiderait à t'aider.

  5. #5
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    J'ajouterai que le simple fait de vider la mémoire (empty) pour les variables de type Variant ou de type Object (quels qu'il soient), c'est déja une initialisation faite par l'environnement de VB. Dans les autres langages comme Delphi ou C, une variable non initialisée contient le 'garbage' (esscuzez l'anglicisme) que le bloc de mémoire contenait déjà avant d'être libéré. C'est donc une bonne habitude d'initialiser systématiquement toutes nos variables (autant que faire se peut). Car une fois qu'on aura à programmer avec d'autres langages, l'habitude sera prise.

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Toujours dans le brouillard, je suggère que tu mettes
    avant ton code, dans un module ou dans la feuille de code d'une feuille de calculs. Ainsi tu sauras si une variable n'a pas été déclarée.
    Bref, kenny49, qu'entends-tu par "tableau initialisé"

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par ouskel'n'or Voir le message
    [...] qu'entends-tu par "tableau initialisé"
    Bonjour,

    Je suppose qu'il voulais savoir si un tableau() était initialisé ou pas.

    Par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub vide()
     
       Dim table() As String
     
       If IsEmpty(table()) Then
            MsgBox "vide"
       Else
            MsgBox "Pas vide"
        End If
        ' Affiche "Pas vide"
     
    End Sub
    Je sais le code est faux mais l'idée est qu'à un moment "t" on initialise un tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       Dim table() As String
       ReDim table(4, 2)
       table(2, 0) = 8
    Puis, on ne sait pas pourquoi mais à un instant "t + n" le tableau n'est plus initialisé !!!

    Et du coup, on voudrais passer le tableau dans une condition pour savoir s'il est initialisé.
    Le cas échéant, lancer une fonction pour réinitialiser le tableau qui ne l'est plus!

    Enfin voilà, c'est ça que je pense qu'il voulait savoir car moi je suis sur le même soucis ...


    Donc si vous avez une réponse.
    Merci de faire partager.

    Cordialement, Tawot

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 29
    Points : 18
    Points
    18
    Par défaut SOLUTION !!
    Bonjour,

    Malgré la date du post, je poste la solution que j'ai trouvé pour les futurs lecteurs qui recherche cette solution.

    Voici le code permettant de savoir si un tableau a déjà été, oui ou non, initialisé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        'Vérif si le tableau est initialisé
     
        On Error Resume Next        'On passe le message d'erreur
     
        If LBound( t_tableau() )  Then              'On regard si le tableau est initialisé
            MsgBox "Le tableau N'est PAS initialisé"
            Call initialisation_du_tableau           'On appelle la fonction d'initialisation
        Else
            MsgBox "Le tableau est initialisé !!"
        End If

    Moi c'est ce que je cherchais donc problème RÉSOLU !!

    Bonne continuation à tous !

Discussions similaires

  1. Comment savoir si un tableau est vide ?
    Par ram-0000 dans le forum Langage
    Réponses: 2
    Dernier message: 14/02/2014, 09h14
  2. Comment savoir si un itérateur est initialisé ?
    Par neismarspra dans le forum SL & STL
    Réponses: 8
    Dernier message: 23/09/2008, 11h39
  3. Réponses: 20
    Dernier message: 03/06/2008, 09h56
  4. Comment savoir la taille d’un tableau dynamique
    Par dot-_-net dans le forum Débuter
    Réponses: 27
    Dernier message: 15/02/2008, 22h17
  5. Comment savoir si ma variable est un tableau
    Par ner0lph dans le forum ASP
    Réponses: 4
    Dernier message: 14/11/2006, 16h27

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