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 :

Récupérer valeur d'une autre colonne [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2013
    Messages : 7
    Par défaut Récupérer valeur d'une autre colonne
    Bonjour,

    Je débute dans ce domaine et j'avoue que j'ai un peu de mal, on m'a demandé de créer une macro qui :

    Un fichier base de données existe avec 2 colonnes, première N° article, seconde N° machine
    Par rapport à ce fichier, créer un autre fichier ou dans une case saisir une valeur n° article et dans la case à coté obtenir le résultat de la colonne N° machine.

    J'ai commencé quelque chose ou j'arrive boucler sur la 1e colonne et renvoyer un résultat, mais comment obtenir la valeur qui se trouve à côté de celle recherché ?
    J'ai pensé à récupérer la position de la cellule dans une variable et faire un +1 au niveau de la colonne ?
    suis-je dans la bonne direction d'après vous ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Public Sub recherche()
    'Définition des variables
    Dim saisie As Long 
    Dim monRange As Range
     
    saisie = Feuil1.saisie_moule.Value
     
    For Each monRange In ActiveSheet.Range("A2:A25") 'boucle sur la colonne A de 2 à 25
     
     If saisie = monRange.Value Then Feuil1.result_moule.Value = "ok" Else Feuil1.result_moule.Value = "nok"
     
     Next
    End Sub

  2. #2
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 587
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 587
    Par défaut
    Bonjour

    La fonction RECHERCHEV fait cela très bien et s'adaptera en cas de changement de N°.

    Pourquoi VBA ?

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2013
    Messages : 7
    Par défaut
    Ce fichier est pour un responsable un peu réservé côté travail.. il veut un truc simple avec 2 cases voila pourquoi j'ai besoin de ça.
    A savoir qu'un article peu avoir été monté sur plusieurs machines, donc résultats multiples.

    est-ce qu'avec "J'ai pensé à récupérer la position de la cellule dans une variable et faire un +1 au niveau de la colonne ?" je suis dans la bonne direction ou je m’égare complet ?

    Merci

  4. #4
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bonjour
    si j'ai compris t'as un base de donnée en colonne A le code article et en colonne B la machine qui recevra cette article, et chaque article peut être monté sur plusieurs machines ... dans ce cas un tableau croisé dynamique fait l'affaire avec excellence
    mais si t'insiste sur VBA et vu que chui débutant ds le domaine... à mon avis t'as besoin d’insérer un userform avec un textbox un bouton de commande et un listbox
    dans le textbox tu saisi le code recherché et tu clique sur la commande recherché et tu aura ton résultat (multiple ou unique dans la listbox) (voir capture écran) Nom : RECH.jpg
Affichages : 301
Taille : 79,7 Ko
    le code à ajouter au bouton rechercher
    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
    Private Sub CommandButton1_Click()
     
    Dim plage As Range
    Set plage = Sheets("feuil1").Range("A2:A" & [A65536].End(xlUp).Row)
    codrecherché = CDbl(UserForm1.TextBox1.Value)
     i = 0
    For Each Cell In plage
     If Cell.Value = codrecherché Then
        UserForm1.ListBox1.ColumnCount = 3
        UserForm1.ListBox1.ColumnWidths = "50;70;100"
        UserForm1.ListBox1.AddItem
        UserForm1.ListBox1.Column(0, i) = Cell.Address
        UserForm1.ListBox1.Column(1, i) = Cell(1, 1)
        UserForm1.ListBox1.Column(2, i) = Cell(1, 2)
        i = i + 1
     End If
        Next Cell
    End Sub
    bon courage

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2013
    Messages : 7
    Par défaut
    Parfait c'est exactement ce dont j'avais besoin. merci beaucoup BENNASR

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/10/2012, 17h18
  2. [Dojo] DataGrid récupérer la valeur d'une autre colonne
    Par iroze dans le forum Bibliothèques & Frameworks
    Réponses: 3
    Dernier message: 04/06/2010, 15h31
  3. Réponses: 3
    Dernier message: 11/03/2010, 12h44
  4. Réponses: 5
    Dernier message: 07/05/2009, 17h41
  5. Alias colonne dépendant de la valeur d'une autre colonne
    Par daijoubu dans le forum Langage SQL
    Réponses: 6
    Dernier message: 31/08/2005, 10h17

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