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 :

Importer les valeurs d'une liste dans une autre feuille


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2010
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 71
    Points : 47
    Points
    47
    Par défaut Importer les valeurs d'une liste dans une autre feuille
    Bonjour à ts,

    J'avais deja posté une discussion sur le sujet. J'ajoute ici un fichier. Mon but est d'afficher toutes les valeurs existantes pour le nom entré en B2...
    Pouvez vous m'indiquer ou je me trompe. Je sais que c'est bete mais je bloque dessus depuis plusieurs jours deja.

    Merci d'avance,

    PS:J'ai aussi essaye des Arrays mais je n'arrive pas a recopier les données.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    389
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 389
    Points : 437
    Points
    437
    Par défaut
    Bonjour,

    En utilisant votre code sans chercher à optimiser

    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
    Sub Recherche()
     
    Dim i As Integer
    Dim J As Integer
    Dim wsB As Worksheet   'Worksheet Alize
    Dim wsK As Worksheet    'Worksheet Portefeuille
    Dim Valeur As String
    Dim wb As Workbook
    Dim nbre As Double
     
    Set wsB = ThisWorkbook.Worksheets("Output")
    Set wsK = ThisWorkbook.Worksheets("Data")
    Valeur = wsB.Range("B2").Value
     
    Cb = wsK.Range("Date").Column
    nbre = wsK.Cells(Rows.Count, Cb).End(xlUp).Row
    J = 2
    If Valeur <> "" Then
        For i = 2 To nbre 'wsK.Cells.Find("Date A ", lookat:=xlWhole).Row + 1 To nbre
            'For J = wsB.Cells.Find("Date E", lookat:=xlWhole).Row + 1 To 20
     
                If wsK.Cells(i, 2).Value = Valeur Then
     
                        wsB.Cells(J, 7).Value = wsK.Cells(i, 1).Value
                        wsB.Cells(J, 8).Value = wsK.Cells(i, 2).Value
                        wsB.Cells(J, 9).Value = wsK.Cells(i, 3).Value
                        wsB.Cells(J, 10).Value = wsK.Cells(i, 4).Value
                    J = J + 1
                End If
            'Next J
        'J = J + 1
        Next i
    i = i + 1
    End If
     
     
    End Sub

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 652
    Points : 1 116
    Points
    1 116
    Par défaut
    Bonjour,

    une autre manière de 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    Sub Recherche()
     
    Dim wsB As Worksheet   'Worksheet Alize
    Dim wsK As Worksheet    'Worksheet Portefeuille
    Dim Valeur As String
     
    Dim nbre As Long, cptr As Long
    Dim lig As Byte
    Dim T_out
     
    Set wsB = ThisWorkbook.Worksheets("Output")
    Set wsK = ThisWorkbook.Worksheets("Data")
    Valeur = wsB.Range("B2").Value
     
    With wsK
        nbre = Application.CountIf(.Columns(2), Valeur)
        If nbre > 0 Then
            ReDim T_out(1 To nbre, 1 To 4)
            lig = 1
            For cptr = 1 To nbre
                    lig = .Columns(2).Find(Valeur, .Cells(lig, 2), xlValues).Row
                       T_out(cptr, 1) = .Cells(lig, 1).Value
                        T_out(cptr, 2) = .Cells(lig, 2).Value
                        T_out(cptr, 3) = .Cells(lig, 3).Value
                        T_out(cptr, 4) = .Cells(lig, 4).Value
            Next
        End If
    End With
     
    Application.ScreenUpdating = False
    With wsB
        .Range("G2:J1000").ClearContents
        .Range("G2").Resize(cptr - 1, 4) = T_out
    End With
     
    End Sub

  4. #4
    Membre du Club
    Inscrit en
    Décembre 2010
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 71
    Points : 47
    Points
    47
    Par défaut
    Merci pour cette réponse !

    Cordialement, NY

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

Discussions similaires

  1. [SP-2010] récupérer les terme d'une colonne d'une liste dans une autre liste
    Par Noruk dans le forum SharePoint
    Réponses: 2
    Dernier message: 09/02/2015, 18h15
  2. récupérer les valeurs d'un checkbox dans une liste
    Par ikouhan dans le forum Struts 1
    Réponses: 19
    Dernier message: 31/08/2010, 14h22
  3. Réponses: 3
    Dernier message: 13/01/2009, 16h55
  4. champ d'une liste lié à une liste dans un autre site
    Par guintolli dans le forum SharePoint
    Réponses: 8
    Dernier message: 08/07/2008, 14h51
  5. [MySQL] Organiser les valeurs de 2 tables dans une liste de sélection
    Par domdas dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 12/08/2006, 08h51

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