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 :

Fonction Find avec Array [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Octobre 2008
    Messages
    240
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 240
    Par défaut Fonction Find avec Array
    Bonjour le forum,

    J'ai deux Arrays
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    TabQuoi = Array("TOTAL  D C", "PICKING", "KITTING", "RECEPTION", _
    "ABSENTS", "DIVERS", "CP", "RTT", "1/2 RTT", "Heures de picking", _
    "Nombre de lignes facturées", "Lignes facturées / heure / personne")
     
    TabVariable = Array(TotalDC, Picking, Kitting, Reception, _
    Absents, Divers, CP, RTT, DemiRTT, HeuresPicking, NbLignesFacturees, Index)
    J'aimerais monter une fonction find qui irait chercher chaque valeur de TabQuoi dans la feuille active et affecter le numéro de ligne de la recherche respectivement à chaque Variable de TabVariable. Et j'avoue que je coince...
    Je sais faire un find pour chaque valeur, mais j'aimerais simplifier ce code.

    Merci d'avance.

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim i As Byte
    Dim TabQuoi, TabVariable
    Dim c As Range, plage As Range
     
    Set plage = ActiveSheet.Range("A1:E200") 'à adapter
     
    For i = 0 To 11
        Set c = plage.Find(TabQuoi(i), LookIn:=xlValue, lookat:=xlWhole)
            If Not c Is Nothing Then TabVariable(i) = c.Row
        Set c = Nothing
    Next i
     
    'Utilisation de TabVariable

  3. #3
    Membre éclairé
    Inscrit en
    Octobre 2008
    Messages
    240
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 240
    Par défaut
    Ah c'est pour ça que je ne suis pas un membre chevronné. Merci, je vais tester!
    Est-ce qu'on peut calculer le nombre de valeurs dans un array d'ailleurs?

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    membre chevronné
    ce ne sont que des apparences, je t'assure
    par contre, la question n'est pas claire
    Est-ce qu'on peut calculer le nombre de valeurs dans un array d'ailleurs?

  5. #5
    Membre éclairé
    Inscrit en
    Octobre 2008
    Messages
    240
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 240
    Par défaut
    En fait, je me lance peut-être dans quelque chose trop difficile pour moi pour le moment, mais le nombre de valeurs dans chacun des Tab peut-être amené à varier...

    Dans ton code, tu fais aller i de 0 à 11 parce qu'il y a 12 valeurs dans mon TabVariable, non? J'aimerais détecter qu'un utilisateur encore moins doué que moi n'en a pas rajouté...

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut Plus de précision
    Edit:
    donne l'indice du dernier élément
    donne l'indice du premier élément
    Par défaut, le premier élément a l'indice 0
    Tu peux le changer par Option base au début de module

    donne le nombre d'éléments du tableau Tablo

    en règle générale le nombre d'éléments est donné par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ubound(Tablo)-Lbound(Tablo)+1

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

Discussions similaires

  1. [Toutes versions] Fonction FIND avec plusieurs valeurs dans une meme cellule.
    Par Manu3100 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 05/07/2015, 18h56
  2. Réponses: 4
    Dernier message: 15/06/2009, 15h31
  3. Fonction Find avec doublons
    Par Jeyjey1 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 28/02/2008, 08h30
  4. [VBA-E]Problème avec la fonction Find
    Par Mirx1 dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 27/04/2006, 18h43
  5. Problème avec une fonction et un array
    Par Neal Morse dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/08/2005, 12h04

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