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 :

aide sur les zones de liste en macro [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Mars 2012
    Messages : 161
    Points : 103
    Points
    103
    Par défaut aide sur les zones de liste en macro
    Bonjour *

    En fait je ne pense pas que ça soit tres complexe ms pour un debutant c'est la prise de tete assurez et je n'y arrive pas malgres les tuto et les forums je reste bloqué, j'espere pouvoir trouver de l'aide ici

    J'ai un classeur excel avec 2 feuilles
    1 -En gros en feuille 1 j'ai un tableau vide et un bouton "contact"
    2- En feuille 2 j'ai une liste de contact avec en colonne A noms,colonne B prenom, colonne C adresse
    3- En gros j'aimerais quand je tape sur le bouton "contact" dans la feuile 1 ça m'affiche une liste avec les noms qui sont dans la colonne A de ma feuille 2.
    (Les noms et les autres info de ma feuilles 2 sont deja liés entre elle donc quand je tri tout change et tout suit, voici le lien du toto que j'ai suivi pour faire ma liste de contact :http://www.tutoriel-video.com/carnet...ajout-contact/)
    4- Une fois que j'ai ma liste avec mes noms j'aimerais pouvoir cliquer sur le nom voulu et que cette action affiche dans la feuille 1 le Nom en A3, le prénom en D4, l'adresse en A4 etc...

    j'ai une idée tres précise de ce que je veux faire je n'ai juste pas les connaissances et c'est pas le biais de vos instructions que je pourrai apprendre. Je ne demande pas un code tout fait, c'est du boulot mais juste qu'on m'indique les étapes à suivre. Merci beaucoup

  2. #2
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour,

    bizarre les contradictions
    3- En gros j'aimerais quand je tape sur le bouton "contact" dans la feuile 1 ça m'affiche une liste avec les noms qui sont dans la colonne A de ma feuille 2.
    4- Une fois que j'ai ma liste avec mes noms j'aimerais pouvoir cliquer sur le nom voulu et que cette action affiche dans la feuille 1 le Nom en A3, le prénom en D4, l'adresse en A4 etc...
    ça demande des explications !

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Mars 2012
    Messages : 161
    Points : 103
    Points
    103
    Par défaut
    Bonjour merci de répondre j'espere que vous allez pouvoir m'aider

    En fait mon tableau de contact dans la feuille 2 je l'utilise comme une base de donné pour pouvoir éditer ma feuille 1
    donc sur ma feuille 1 j'ai un bouton contact, j'aimerai qu'en cliquant dessus ca m'affiche une liste avec les noms qui sont dans la colone 1 de ma feuille 2
    Puis en double cliquant dans la liste sur le Nom une fois trouvé je souhaiterais que les info qui lui sont liées (prénom, adresse) s'affiche dans la feuile 1 dans des cellules bien précises

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 961
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 961
    Points : 28 972
    Points
    28 972
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Sauf s'il est impératif pour toi de développer en VBA, nul besoin de macro dans ce cas là.
    Une simple Validation de données dans Excel combinée à des cellules contenant la fonction RECHERCHEV ou la combinaison de EQUIV & INDEX feront parfaitement l'affaire.
    Cela te prendra 15 minutes si tu connais Excel bien entendu.

  5. #5
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    ...s'affiche dans la feuile 1 dans des cellules bien précises
    là, ok mais à mon avis pas celles que tu avais choisies

    Pour commencer et répondre à ta 1ere préoccupation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub CONTACT_Click() 'nom de ton bouton
    Dim dl As Long
    With Sheets("feuil1")
      dl = .Range("A" & .Rows.Count).End(xlUp).Row 'recherche de la dernière ligne
      Sheets("feuil2").Range("A2:A" & dl) = .Range("A2:A" & dl) 'si tu copies à la meme place donc à adapter
    End With
    '............
    End Sub
    adaptes, ensuite on verra ou veux-tu coller le reste des infos

    PS : je n'ai pas vu ta réponse corona

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 961
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 961
    Points : 28 972
    Points
    28 972
    Billets dans le blog
    53
    Par défaut
    PS : je n'ai pas vu ta réponse corona
    Bonsoir Dominique,
    Pas de soucis, si c'est le voeux de nicdodo d'absolument développer une solution en VBA, sa demande est comblée.
    Je n'ai pas de problème avec cela, je trouve simplement que par moment on ne profite pas assez des fonctionnalités immenses qu'offre Excel en réinventant par des codes VBA ce qui existe déjà dans l'application.

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Mars 2012
    Messages : 161
    Points : 103
    Points
    103
    Par défaut
    Je connais excel mais les fonctions de base, si, somme etc..., j'ai vu dans differents forums cette méthodes par recherche V mais je vais etre honnette je n'y ai strictement rien compris.
    Je veux faire un programme de prise de commande pour ma société , le programme doit etre intuitif car les personnes qui vont l'utilisez vont souvent changer.
    J'ai tout fait les menu, etc, la seule chose qui me manque c'est ce bouton "contact"
    L'idée c'est en appuyant sur ce bouton "contact", aller vers une liste (donc au préalble créer une userform, une zone de liste ou zone de liste déroulante, je ne sais pas laquelle est la mieux adaptée à mon probleme, la configurer pour que seul les nom de ma colonne 1 s'affiche quand je clique sur "contact" et qu'apres avoir trouvé le nom je double clik dessus et que les info s'affiche a des cellules bien précises de ma feuille 1)

  8. #8
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 961
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 961
    Points : 28 972
    Points
    28 972
    Billets dans le blog
    53
    Par défaut
    Bonsoir
    Citation Envoyé par nicdodo Voir le message
    Je connais excel mais les fonctions de base, si, somme etc..., j'ai vu dans differents forums cette méthodes par recherche V mais je vais etre honnette je n'y ai strictement rien compris.
    Je trouve amusant que tu dises ne rien comprendre à la fonction RECHERCHEV et choisir alors de développez en VBA qui est tout de même nettement plus complexe que les fonctions d'Excel.
    La prérequs lorsque quelqu'un veut suivre une formation VBA est une bonne connaissance des outils et fonctions d'Excel.

  9. #9
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Mars 2012
    Messages : 161
    Points : 103
    Points
    103
    Par défaut
    Le probleme c'est que la fonction rechercheV est limitée (en tout cas à mon niveau) et surtout trop lente,
    effectivment ça marche mais
    1 - je suis obligé de taper le nom entier correctement et j'aimerais que quand je tape A, tous les noms en a s'affiche puis que la liste se restreingne au fur et a mesure
    2 - j'ai un bouton fin de commande et quand je clique dessus ça efface toutes mes cases choisis de la feuille A1 j'ai bien essayé de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sub efface()
     
    ActiveSheet.Cells(3, 1) = "=RECHERCHEV(CONTACT!L(-2)C(2)CLIENT;1;FAUX)"
    Mais ça me dit qu'il y'a un bug donc pour effacer ma cellule je reste sur mon code précédent

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sub efface()
     
    ActiveSheet.Cells(3, 1) = ""
    y a-t-il une solution pour ces 2 problemes?

  10. #10
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 961
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 961
    Points : 28 972
    Points
    28 972
    Billets dans le blog
    53
    Par défaut
    Bonsoir,
    Je vais d'abord te donner la solution en VBA et ensuite te donnerai une solution avec les fonctions d'Excel qui a ma préférence.
    Nous partons de l'hypothèse que tu as 2 feuilles, l'une nommée Cde et l'autre contact
    La feuille contact commence à A1 et a comme première ligne les étiquettes de colonne. Colonne A, les noms, B, les prénoms C Adresse etc ...
    La feuille Cde aura en cellule A2 le nom sélectionné dans la liste, et en B2 le prénom.
    Code à placer dans le UserForm avec un contrôle ListBox nommé lstListContact
    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
    Option Explicit
    Enum Table
     Contact = 0
     Commande = 1
    End Enum
    Dim sht(2) As Worksheet
    Private Sub lstListContact_Click()
     With sht(Table.Commande)
     Debug.Print Me.lstListContact.ListIndex + 1
     .Range("A2") = sht(Table.Contact).Cells(Me.lstListContact.ListIndex + 2, 1)
     .Range("B2") = sht(Table.Contact).Cells(Me.lstListContact.ListIndex + 2, 2)
     End With
    End Sub
    Private Sub UserForm_Initialize()
     Dim tblSrce As String ' Adresse de la Table Contact pour RowSource
     With ThisWorkbook
      Set sht(Table.Contact) = .Worksheets("Contact")
      Set sht(Table.Commande) = .Worksheets("Cde")
     End With
     With sht(Table.Contact)
      tblSrce = .Name & "!" & Range(Cells(2, 1), Cells(.Range("A1").End(xlDown).Row, .Range("A1").End(xlToRight).Column)).Address
     End With
     With Me.lstListContact
     .ColumnHeads = True
     .ColumnCount = 3
     .ColumnWidths = "60;60;80"
     .RowSource = tblSrce
     End With
    End Sub

  11. #11
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 961
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 961
    Points : 28 972
    Points
    28 972
    Billets dans le blog
    53
    Par défaut Oubli d'une phrase
    Bonsoir,
    J'avoue ne plus trop comprendre le chemin que tu prends avec les fonctions d'Excel
    Le probleme c'est que la fonction rechercheV est limitée (en tout cas à mon niveau) et surtout trop lente,
    effectivment ça marche mais
    1 - je suis obligé de taper le nom entier correctement et j'aimerais que quand je tape A, tous les noms en a s'affiche puis que la liste se restreingne au fur et a mesure
    2 - j'ai un bouton fin de commande et quand je clique dessus ça efface toutes mes cases choisis de la feuille A1 j'ai bien essayé de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Cells(3, 1) = "=RECHERCHEV(CONTACT!L(-2)C(2)CLIENT;1;FAUX)
    Si tu utilises les fonctions d'Excel comme RECHECHEV, pourquoi passer par du code VBA pour insérer la formule dans une cellule, y a-t-il un impératif ?

  12. #12
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Mars 2012
    Messages : 161
    Points : 103
    Points
    103
    Par défaut
    Non je n'utilise pas le rechercheV mais j'ai essayé comme vous m'avez conseillez, effectivement ça a marcher et d'ailleurs je suis ravi d'avoir découvert cette fonction, mais dans mon projet la recherchev n'est pas efficace.
    La ligne de code que j'ai mis était un essai,
    j'ai un bouton qui efface toutes les données de ma facture que je veux apres une commande.d'ou le code
    ActiveSheet.Cells(3, 1) = ""
    et du coup mon essai pour remplacer le "" par une recherchev. J'ai voulu essayer mais ça ne marche pas.
    Cependant Corona je te suis infiniment recconnaissant, ton code est super il marche, je l'ai adapté en remplacant la listebox par une combobx et c'est génial. J'aimerai vraiment savoir faire un code aussi complexe, car copier un code dans mon cas professionnellement c'est tres efficace mais a titre personel j'aimerai vraiment comprendre son fonctionnement. J'ai lu beaucoup de cours et de tuto mais comprendre ligne par ligne le pourquoi du comment m'interesserai vraiment.
    Est ce qu'il existe des cours ou une formation à distance pour apprendre le VB?

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

Discussions similaires

  1. [AC-2007] Demande d'aide sur enregistrement zone de liste
    Par zizou74 dans le forum Access
    Réponses: 34
    Dernier message: 10/03/2014, 12h08
  2. Aide sur les listes (pile/file)
    Par D2KBMH4 dans le forum Débuter
    Réponses: 7
    Dernier message: 17/01/2009, 18h08
  3. Réponses: 6
    Dernier message: 16/02/2008, 21h53
  4. Besoin d'aide sur les listes
    Par Vincent Dieudonné dans le forum SharePoint
    Réponses: 5
    Dernier message: 24/05/2007, 12h34
  5. Aide sur les macros Excel pour recopie auto de données
    Par nicoduhavre dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/11/2005, 08h38

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