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 :

Boucler sur un tableau de type personnalisé


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 16
    Par défaut Boucler sur un tableau de type personnalisé
    Bonjour,

    Dans un souci d'optimisation je souhaiterai boucler sur un tableau de type personnalisé, j'éprouve cependant des difficultés dans l'implémentation/syntaxe de ma boucle.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    'Je définis mon type  "Sites"
    
    Public Type Sites
    
    Nom As String
    Data As String
    Voix As String
    Range1 As Range
    [etc]
    End Type
    
    'Je créer mon tableau de ce type
    Sub DefinirSites()
    
    Dim Site(5) As Sites
    
    With Site(0)
    .Nom = "Argenteuil"
    .Data = "<>*TelephonieWifi*"
    .Voix = "*TelephonieWifi*"
    Range1 = "E9"
    
    End With
    
    With Site(1)
    
    [blabla]
    
    End With
    
    [etc etc]
    
    End Sub
    
    'Ici j'essaye de parcourir ce tableau avec une boucle for each
    Sub MaBoucle
    
    For each i in Site(i)  'ici en mode débogueur il indique Sub ou Fonction non définie pour "Site(i)"...?
    
    'On filtre selon les sites 
    ActiveSheet.Range("$A$1:$Q$400000").AutoFilter Field 12, Criterial:= _
    "=*" & Site(i).Nom & "*", Operator:=x1And
    
    'On filtre selon le SSID
    ActiveSheet.Range("$A$1:$Q$400000").AutoFilter Field 13, Criterial:= _
    "=*" & Site(i).Data & "*", Operator:=x1And
    
    [ensemble d'instructions]
    
    Next i
    
    End Sub
    Voila où j'en suis, est-ce possible de boucler sur un tableau contenant des types personnalisés, et si oui avez vous des pistes ou des documents à me conseiller car avec ce que j'ai lu je n'ai pas trouvé la réponse encore...

    Merci d'avance

    Antoine

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Tu ne peux pas avec For Each, utilise For dans ce cas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    Public Type Sites
        Nom As String
        Data As String
        Voix As String
        Range1 As Range
    End Type
    Private Sites(1 To 5) As Sites
     
    Sub Test()
        For i = LBound(Sites) To UBound(Sites)
            Sites(i).Data = "Data" & i
        Next
        MsgBox Sites(3).Data
    End Sub

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 16
    Par défaut
    Salut,

    Ok avec For, mais si je comprend bien pour définir les caractéristiques de chaque site, comme la data, je dois effectuer des boucles comme ceci pour chaque critère?

    Car, peut être ce n'était pas assez clair, mais mon but est de pouvoir mettre en place une boucle sur ma liste d'instructions qui est assez conséquente et répétitive.

    Pour ce faire j'ai besoin de généraliser toutes les infos variables (avec le type Sites), puis dans mon tableau. Tu me proposes de boucler pour renseigner ses infos c'est bien ca?

    [edit]
    En fait c'est bon je pense avoir trouvé la bonne méthode, merci pour le for ça marche bien en effet.

    Par curiosité sais-tu pourquoi le for each ne marchait pas? Question de domaine de définition?

  4. #4
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut




    Bonjour, bonjour !

    Mauvaise définition de la portée de la variable, facile pourtant à contrôler en mode pas à pas (via la touche F8) …


  5. #5
    Invité
    Invité(e)
    Par défaut
    bonjour,
    je ne suis pas sur que travailler autour d'un type personnalisé soit la meilleur solution; car je voie que tu applique ton type à un AutoFilter! que veux tu faire avec cet AutoFilter?

    il pourrait être utile de nous en dire un peut là dessus!

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 16
    Par défaut
    Bonjour,

    Je ne l'ai pas mis encore mais j'ai résolu mon problème , tout fonctionne depuis que j'ai changé le for each avec un for next classique.

    Sinon, l'Autofilter me sert à filtrer certains champs, que je copy ensuite pour effectuer des calculs dessus.

    Par curiosité, par quoi remplacerais-tu le type ?

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

Discussions similaires

  1. Boucler sur un tableau Ubound
    Par awa123 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/12/2013, 10h13
  2. [Mapping] Type Integer[] mappé sur un tableau d'objets
    Par MortDansLAme dans le forum Hibernate
    Réponses: 0
    Dernier message: 08/08/2012, 15h44
  3. Réponses: 37
    Dernier message: 18/05/2008, 23h20
  4. Réponses: 5
    Dernier message: 06/01/2007, 11h09
  5. Boucler sur un tableau associatif
    Par effree dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/02/2006, 16h15

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