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 :

Afficher des données corespondant à une variable


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 138
    Points : 54
    Points
    54
    Par défaut Afficher des données corespondant à une variable
    Bonjour à tous :

    j'ai un problème :

    je dispose de 2 feuilles :

    1 : données dédoublonnées
    2 : toutes les données ( donc avec doublons)

    lien entre les 2 feuilles : une référence

    j'aimerai que lorsque je clique sur une référence de ma feuile 1, afficher dans une nouvelle feuille toutes les données de la feuille 2 qui correspondent.

    soit en gros un tableaux dynamic liant les 2 feuilles.

    Avez vous une idée ?

  2. #2
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    Bonjour

    Avec des formules matricielles ou par macro au choix, seulement un exemple de ton classeur est necessaire

    @ te lire
    Wilfried

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 138
    Points : 54
    Points
    54
    Par défaut
    voilà

    J'ai simplifié mon fichier mais je pense qu'avec ceci vous comprendrez mieux mon problème
    Fichiers attachés Fichiers attachés

  4. #4
    Expert éminent sénior 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
    Points : 31 877
    Points
    31 877
    Par défaut
    dans l'évènement Change de ta feuille sans doublons
    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
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim LastLigSD As Long, LastLigAD
     
    Application.ScreenUpdating = False
    LastLigSD = Cells(Rows.Count, "D").End(xlUp).Row
    If Not Intersect(Target, Range("D2:D" & LastLigSD)) Is Nothing Then
        With Sheets("BDD avec doublon")
            Sheets("Feuil3").UsedRange.Clear
            .AutoFilterMode = False
            LastLigAD = .Cells(Rows.Count, "D").End(xlUp).Row
            .Range("A1:G" & LastLigAD).AutoFilter field:=4, Criteria1:=Target.Cells(1, 1).Value
            .Range("A1:G" & LastLigAD).SpecialCells(xlCellTypeVisible).Copy Sheets("Feuil3").Range("A1")
            .AutoFilterMode = False
        End With
    End If
    End Sub
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  5. #5
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    Re:

    J'ai bossé je poste lol, à placer dans le code VBA de la Feuille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        If Intersect(Target, Range("D2:D1000")) Is Nothing Then Exit Sub
        If Target = "" Then Exit Sub
        Sheets("Feuil3").Cells.Clear
        With Sheets("BDD avec doublon").Range("A:G")
            .AutoFilter field:=4, Criteria1:=Target.Value
            .SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets("Feuil3").Range("A1")
            .AutoFilter
        End With
        Sheets("Feuil3").Select
    End Sub
    Wilfried

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 138
    Points : 54
    Points
    54
    Par défaut
    bonjour mercatog,

    J'ai testé votre code, il m'affiche uniquement l'entête des colonnes dans la feuil3

    Je précise :

    feuil 1 sans doublon : le critère ( référence) est à la colonne C
    feuil 2 avec doublon : le critère (référence) est à la colonne M

    peut être est-ce celà qui plante ?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 138
    Points : 54
    Points
    54
    Par défaut
    Merci à vous !

    votre programme marche, j'ai juste ajusté en fonction de mes colonnes !

    Je vous remercie

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 138
    Points : 54
    Points
    54
    Par défaut
    re bonjour :

    j'aimerai savoir s'il est possible que la macro s'effectue que s'il on double clique sur la cellule ??

  9. #9
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    re:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        If Intersect(Target, Range("D2:D1000")) Is Nothing Then Exit Sub
        Cancel = True
        If Target = "" Then Exit Sub
        Sheets("Feuil3").Cells.Clear
        With Sheets("BDD avec doublon").Range("A:G")
            .AutoFilter field:=4, Criteria1:=Target.Value
            .SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets("Feuil3").Range("A1")
            .AutoFilter
        End With
        Sheets("Feuil3").Select
    End Sub
    Wilfried

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 138
    Points : 54
    Points
    54
    Par défaut
    merci, celà marche très bien

    J'ai un autre pb :

    Je cherche à créer le même programme sur une autre colonne de ma base.

    J'ai adapté le code à ma demande mais le problème c'est qu'il ne s'éxécute pas car je ne peux pas créer un autre private sub before doubleclick

  11. #11
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    re:

    colonne D & E
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        If Intersect(Target, Range("D2:E1000")) Is Nothing Then Exit Sub
        Cancel = True
        If Target = "" Then Exit Sub
        Sheets("Feuil3").Cells.Clear
        With Sheets("BDD avec doublon").Range("A:G")
            .AutoFilter field:=Target.column, Criteria1:=Target.Value
            .SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets("Feuil3").Range("A1")
            .AutoFilter
        End With
        Sheets("Feuil3").Select
    End Sub
    Wilfried

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 138
    Points : 54
    Points
    54
    Par défaut
    bonjour wilfried,

    je me suis mal exprimé :

    J'ai ajouté une nouvelle feuille à mon classeur,

    et j'aimerai qu'en faisiant le même principe que précédemment, lorsque je clique sur la colonne E de ma feuille, avoir les résultats correspondant de ma nouvelle feuille ( je l'ai appeler feuille 4) et me sortir ses résultats dans la feuille 5.

    Pour reprendre :

    J'ai donc en
    1 ma BDD
    2 ma BDD avec doublons
    3 Afficher les doublons en fonction du clique sur la 1
    4 nouvelle feuille
    5 afficher les résulats correspondant à la feuille 4 en fonction du clique sur 1

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 138
    Points : 54
    Points
    54
    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
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        If Intersect(Target, Range("D2:D1000")) Is Nothing Then Exit Sub
        Cancel = True
        If Target = "" Then Exit Sub
        Sheets("Feuil3").Cells.Clear
        With Sheets("BDD avec doublon").Range("A:G")
            .AutoFilter field:=4, Criteria1:=Target.Value
            .SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets("Feuil3").Range("A1")
            .AutoFilter
        End With
        Sheets("Feuil3").Select
    End Sub
    J'aimerai savoir si il serait possible que à chaque double clique sur ma variable, on me recréée une nouvelle feuille? ( de la façon d'un croisé dynamic

  14. #14
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 229
    Points : 168
    Points
    168
    Par défaut
    Salut guigui tu peux essayer ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    sub nouvelle_feuille ()
     
    dim nom as string
     
    nom = InputBox("comment voulez vous nommez la nouvelle feuille ?")
    If nom <> "" Then
        Sheets.Add
        ActiveSheet.Name = nom
    End If
     
    End sub
    Après, il doit y avoir des codes d'erreur que je manie pas bien au cas ou l'utilisateur nomme la feuille de la même manière qu'une autre déjà créer...

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 138
    Points : 54
    Points
    54
    Par défaut
    merci de ta réponse, mais en faite je veux garder mon code d'origine et juste changer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheets("Feuil3").Cells.Clear
    SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets("Feuil3").Range
    car avec ce programme il m'écrase les données de la feuille pour remettre les nouvelels qui correspondent à mon choix

  16. #16
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 229
    Points : 168
    Points
    168
    Par défaut
    Si j'ai compris tu veux créer une nouvelle feuille au lieu d'y coller en feuille3

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    nom = InputBox("comment voulez vous nommez la nouvelle feuille ?")
    If nom <> "" Then
        Sheets.Add
        ActiveSheet.Name = nom
    End If
    SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets(nom).Range

Discussions similaires

  1. [PDO] récupérer et afficher des données d'une base
    Par tibou_d dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 14/11/2008, 11h43
  2. [MySQL] Conception d'un tableau affichant des données d'une base
    Par fey dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 14/09/2008, 13h52
  3. [SQL2005] pousser des données dans une variable
    Par Monnier Eric dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/03/2008, 16h05
  4. Réponses: 8
    Dernier message: 14/12/2007, 16h04
  5. Afficher des données dans une textbox
    Par divad dans le forum AWT/Swing
    Réponses: 21
    Dernier message: 27/05/2007, 20h22

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