Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1248 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [resolu] Initialisation d'un tableau

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[resolu] Initialisation d'un tableau

n°1404225
lden
Posté le 10-07-2006 à 22:32:37  profilanswer
 

Salut c'est encore moi!
 
voila j'ai un fichier qui contient 25 onglets.
J'aimerais, lorsque j'execute une fonction, créer un tableau dont les elements sont les noms des worksheets, exceptés certaines d'entre elles ne me servant pas par la suite.
 
ca pourrait etre du style  
i=0
for each worksheets dans le workbook  
 
tab(i)= worksheets(i)
 
next i
 
je suis un peu limite au niveau de la syntaxe.
 
merci


Message édité par lden le 11-07-2006 à 10:05:57
mood
Publicité
Posté le 10-07-2006 à 22:32:37  profilanswer
 

n°1404233
lden
Posté le 10-07-2006 à 22:49:38  profilanswer
 

j'ai fait ca comme code mais ca pue! surtout a la premiere ligne avec worksheet qui est vide ...
 
For Each Worksheet In Workbook
i = 0
If Worksheets(i).Name <> "REGION NE" And "REGION O" And "REGION SE" And "FRANCE" And _
    "base de donnée dynamique" And "Données" And "Analyse" Then
    onglets_dépôt(i) = Worksheets(i).Name
ElseIf Worksheets(i) = "REGION NE" Or "REGION O" Or "REGION SE" Or "FRANCE" Then
    onglets_région(i) = Worksheets(i).Name
End If

n°1404252
Arjuna
Aircraft Ident.: F-MBSD
Posté le 10-07-2006 à 23:20:16  profilanswer
 

moi ce qui me choque le plus, c'est que t'as des accents dans tes variables :o ;)
 
sinon, je ne vois pas où tu incrémentes ton "i", et encore moins où tu redimensionne ton tableau (??)

n°1404325
Epena
Posté le 11-07-2006 à 07:47:57  profilanswer
 

Bonjour,
Worsheets(0) doit déclancher une erreur. Il y a une erreur dans la syntaxe de If And /Or et une erreur de logique dans la boucle. Ceci devrait mieux fonctionner :

Dim i As Integer, j As Integer
Dim onglets_dépôt() As String
Dim onglets_région() As String
 
For Each Feuille In Worksheets
i = 0: j = 0
 
If Feuille.Name <> "REGION NE" And Feuille.Name <> "REGION O" _
    And Feuille.Name <> "REGION SE" And Feuille.Name <> "FRANCE" _
    And Feuille.Name <> "base de donnée dynamique" _
    And Feuille.Name <> "Données" And Feuille.Name <> "Analyse" Then
        ReDim Preserve onglets_dépôt(i)
        onglets_dépôt(i) = Feuille.Name
        i = i + 1
ElseIf Feuille.Name = "REGION NE" Or Feuille.Name = "REGION O" Or Feuille.Name = "REGION SE" Or "FRANCE" Then
         ReDim Preserve onglets_région(j)
        onglets_région(j) = Feuille.Name
        j = j + 1
End If
Next


Cordialement
Epéna

n°1404329
galopin01
Posté le 11-07-2006 à 08:17:32  profilanswer
 

bonjour,
une autre possibilité :

Code :
  1. Sub test()
  2. Dim Col As New Collection 'onglets_dépôt
  3. Dim Col2 As New Collection 'onglets_région
  4. For Each o In Worksheets
  5. If o.Name = "REGION NE" Or o.Name = "REGION O" Or _
  6.     o.Name = "REGION SE" Or o.Name = "FRANCE" Then
  7.     Col2.Add o.Name
  8. ElseIf o.Name <> "base de donnée dynamique" And _
  9.     o.Name <> "Analyse" And o.Name <> "Données" Then
  10.     Col.Add o.Name
  11. End If
  12. Next
  13. For i = 1 To Col.Count
  14. MsgBox Col(i)
  15. Next
  16. For i = 1 To Col2.Count
  17. MsgBox Col2(i)
  18. Next
  19. End Sub


A+


Message édité par galopin01 le 11-07-2006 à 09:24:49
n°1404390
lden
Posté le 11-07-2006 à 10:05:34  profilanswer
 

ok ca marche nickel Epena!
 
merci a vous deux


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [resolu] Initialisation d'un tableau

 

Sujets relatifs
[Résolu] Bug d'IE avec les caractères accentués.[resolu] Plage trop grande!
[résolu]récupération nom de dossier pour imagesAnnuler un évènement javasript (RESOLU)
largeur tableau[résolu]Lancer un programme au demarrage de windows
[RESOLU] POST/GET.... Pourquoi ça marche pas???Création de factures en PDF --- Résolu
fonction TRONQUE résoluOnclick et visibilité d'une suite tableau
Plus de sujets relatifs à : [resolu] Initialisation d'un tableau


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR