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]Recherche dans une variable tableau


Sujet :

Macros et VBA Excel

  1. #1
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut [VBA-E]Recherche dans une variable tableau
    Bonjour,

    N'ayant jamais utilisé les variables tableaux, j'essaye de m'y mettre petit a petit car ça me semble intéressant comme variable

    DOnc j'ai besoin de vous pour des conseils surtout, vous allez voir pourquoi

    Voila dans une feuille, j'ai des données qui sont dans des cellules variables..

    DOnc pour cela et pour remplir le tableau j'ai écrit ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Public TabDO()
     
    Sub InitialisationTableauDO()
    Feuil3.Select
    Dim i As Long
    Dim j As Long
    ReDim TabDO(1 To Range("A1").End(xlDown).Row, 1 To 4)
    For i = 1 To Range("A1").End(xlDown).Row
        For j = 1 To 4
            TabDO(i, j) = Cells(i, j).Value
        Next j
    Next i
    End Sub
    Donc j'ai déclaré ma variable tableau en public car je l'utilise dans d'autres modules, et dans d'autres fonctions (enfin je vais )

    Donc pour vu que le nombre de ligne de mon tableau est variable, j'ai utilisé un Redim pour pouvoir l'initialiser en fonction du nombre de lignes. Jusque la j'ai bon ?

    DOnc pour le remplir, j'utilise une double boucle, mais je crois qu'il y a une méthode plus simple pour le remplir non ? on peut pas faire un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tabDO = range("A1:B" & Range("A1").End(xlDown).Row)
    ?

    Enfin, pour que mon tableau me soit utile, en fait je n'ai aps besoin de toute les valeurs, mais juste d'une ligne suivant la valeur que j'ai dans une autre feuille. COmment faire alors, pour trouver dans mon tableau la ligne, ainsi que les valeurs correspondantes ?

    Par exemple on a un tableau de ce genre :

    1 A B C
    2 D E F
    3 G H I

    Et je voudrais prendre la deuxième ligne de mon tableau, car dans une autre feuille il est écrit, suivant la valeur dans une cellule, que c'est CETTE ligne que je dois prendre..Cmment faire ? car je n'ai besoin par ailleurs que de la valeur de mon tableau, pas de les écrire dans une cellule hein

    (J'espère que je suis assez clair )

    En fait pour ça, j'avais une idée toute bete c'était de faire une boucle pour parcourir mon tableau et dès que je tombe sur la valeur qui m'intéresse, je prend la ligne où je suis et ensuite je pourrait prendre les valeurs de la ligne du tableau qui m'intéresse pour les utiliser ailleurs. Mais je pense qu'il y a d'autres solutions plus simple pour faire ça

    Voila je crois que j'ai tout dit

    Merci en tout cas pour vos conseils, vos remarques, et votre aide et de vous etre approché de mon problème
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    salut
    c'est pas parce que c'est compliqué que ça marche mieux.
    si ta recherche est simplement sur une ligne et que tu la restitue de suite après, c'est amplement suffisant.
    fait une simple boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For i = 1 To Range("A1").End(xlDown).Row
    pour ta recherche., une condition if pour trouver ta valeur et une tableau simple pour stocker les valeurs de ta ligne .
    tableau = array(cells(i,1),cells ....)

    sinon, si tu recherche plusieur lignes, un boucle for each et tu rajoute une variable au tableau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    u = 0
    for each machin in range .....
    if macondition est remplie
    MonTabVal(u) = Array(Cells(machin.Row+1, 1), Cells(machin+1.Row, 2)....
    u = u+1
    next machin
    et pour les restituer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For z = 1 To u  
    Zonedecriture = "a" & z & ":i" & z  'determine la taille des lignes ou ecrire le nouveau tableau
    Worksheets("autrefeuille").Range(Zonedecriture) = MonTabVal(z) 'écriture
    Next z

Discussions similaires

  1. recherche dans une variable tableau
    Par le petit nicolas dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/05/2007, 12h41
  2. [VBA-E] Comment accéder à une variable tableau située dans un autre module
    Par jeanpierreco dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/02/2007, 13h15
  3. [Tableaux] rechercher dans une variable array()
    Par tom06440 dans le forum Langage
    Réponses: 2
    Dernier message: 29/03/2006, 17h45
  4. [VBA-E] guillements dans une variable string
    Par repié dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 10/03/2006, 13h42
  5. [VBA-E] Recherche dans une colonne
    Par snowkhan dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 03/03/2006, 14h21

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