bonjour
savez vous comment on fait pour savoir si un tableau a été initialisé?
Merci
bonjour
savez vous comment on fait pour savoir si un tableau a été initialisé?
Merci
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é...
Code : Sélectionner tout - Visualiser dans une fenêtre à part Workbook_SheetChange
J´ai l´habitude de coder comme un lance-grenades
Alors ne vous étonnez pas si mes macros vous pétent dans les doigts...
Ç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).
- Pour les nouveaux : Mode d'emploi et aide aux nouveaux
- et impérativement les règles du forum. Histoire de garder une ambiance amicale.
- Noubliez pas les balises de Code pour vos listings : bouton # de l'éditeur. Et n'oubliez pas non plus de bouton
- Cours Excel - FAQ Excel - Forum Excel - Cours VBA - Cours complet VBA Excel
Oui, (bonjour zaza) ou alors, inspiré d'un code de SilkyRoad pour supprimer les feuilles de calculs vides :
c'est pas mal non plus...
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"
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.
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.
- Pour les nouveaux : Mode d'emploi et aide aux nouveaux
- et impérativement les règles du forum. Histoire de garder une ambiance amicale.
- Noubliez pas les balises de Code pour vos listings : bouton # de l'éditeur. Et n'oubliez pas non plus de bouton
- Cours Excel - FAQ Excel - Forum Excel - Cours VBA - Cours complet VBA Excel
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Option Explicit
Bref, kenny49, qu'entends-tu par "tableau initialisé"
Bonjour,
Je suppose qu'il voulais savoir si un tableau() était initialisé ou pas.
Par exemple:
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
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
Puis, on ne sait pas pourquoi mais à un instant "t + n" le tableau n'est plus initialisé !!!
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
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
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 !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager