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 :

Copier coller à partir d'une listbox [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    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
    Par défaut Copier coller à partir d'une listbox
    Bonjour,

    J'ai créé un userform dans laquelel j'ai inséré une combobox. Dans les propriétés j'ai sélectionné rowsource: accueil!J2 : P100.
    Les informations du tabeau J2 : P100

    Je souhaiterai savoir comment faire pour que lorsque j'appuie sur une ligne dans ma combo box par exemple la ligne correspondant à J5 : P5 Celle ci ce copie à la 1er ligne vide du tableau situé sur la feuille "accueil" en B26 : G35

    Pour aller à la 1er ligne vide du tableau j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim numlignevide As Integer
    numlignevide = ActiveSheet.Columns(1).Find("").Row(26)
    J'ai parcouru tous les tuto possibles avant de venir vers vous du coup un peu daide ne serai pas de refus mais si vous connaissez un tuto qui soit clair et puisse répondre à mon problème pour que je fasse le code par moi même j'en serai ravi aussi

    Cordialement

  2. #2
    Membre émérite
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Par défaut
    Bonjour,

    premièrement pour la première vide d'un tableau enlever le (26)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim numlignevide As Integer
    numlignevide = ActiveSheet.Columns(1).Find("").Row
    Citation Envoyé par nicdodo Voir le message
    si vous connaissez un tuto qui soit clair et puisse répondre à mon problème pour que je fasse le code par moi même j'en serai ravi aussi
    Avez-vous essayé l'enregistreur de macro ?

  3. #3
    Membre confirmé
    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
    Par défaut
    L'enregistreur de macro ne fonctionne pas dans un cas comme celui la. Ensuite pour le numlignevide je met 26 apres row car je veux qu'il commence à copier à la premiere ligne vide à partir de la ligne 26

  4. #4
    Membre émérite
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Par défaut
    Citation Envoyé par nicdodo Voir le message
    Je souhaiterai savoir comment faire pour que lorsque j'appuie sur une ligne dans ma combo box par exemple la ligne correspondant à J5 : P5 Celle ci ce copie à la 1er ligne vide du tableau situé sur la feuille "accueil" en B26 : G35
    Bonjour,
    Vous dites de vouloir faire le code par vous même
    l'enregistreur de macro peut vous aider.
    C'est certain que vous ne pourrez avoir exactement ce que vous voulez, mais en gros
    l'enregistreur de macro vous montre comment faire certain code.


    exemple:
    si c'est le code du copier coller que vous ne savez pas, alors avec
    l'enregistreur de macro vous pourrez voir quel code il génère, puis l'adapter le à votre macro.


    sur quoi vous bloquez exactement ?
    Est-ce de récupérer la bonne ligne excel quand vous choisissez un option dans le combobox

  5. #5
    Membre confirmé
    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
    Par défaut
    En fait la combo box est dans une form d'ou l'impossibilité d'utiliser l'enregistreur de macro

    pour le copier coller l'enregistreur sort un truc du genre sheets("xx").select etc et les selections ne sont pas tres utiles. En fait j'ai tous pour les actions

    copier coller
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim numlignevide As Integer
    numlignevide = ActiveSheet.Columns(1).Find("").Row(26)
     
    Sheets("accueil").Cells(numlignevide, 1).Value = Sheets("acceuil").Cells(10, 2).Value
    Le truc c'est est ce que je peux faire quelque chose du genre?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("accueil").Cells(numlignevide, 1).Value = combobox etc
    Ça par exemple c'est exactement ce que je ne sais pas faire. copier à partir de la combo box

  6. #6
    Membre émérite
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Par défaut
    Bonjour,

    il faut l'évenement Combobox_Change


    si votre combobox s'appelle ComboBox1 alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub ComboBox1_Change()
     
        Sheets("accueil").Cells(numlignevide, 1).Value = combobox1.text
     
    End Sub

  7. #7
    Membre confirmé
    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
    Par défaut
    Merci je pense que c'est exactement ce dont j'ai besoin dans l'idée. Seulement le debug me dit qu'il y'a un problème sur la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    numlignevide = ActiveSheet.Columns(1).Find("").Row(26)
    et voici le code en entier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub ComboBox1_Change
    Dim numlignevide As Integer
    numlignevide = ActiveSheet.Columns(1).Find("").Row(26)
     
    Sheets("accueil").Cells(numlignevide, 1).Value = ComboBox1.Text
    numlignevide = numlignevide + 1
     
    End Sub
    Alors peut etre il faudrait que je procède en deux étapes avec d'abord la ligne que je choisit dans la combo box qui se sélectionne et ensuite en appuyant sur le bouton nommé "cmd_bouton_ok" et du coup faire un deuxième code. Je sais pas trop en fait j'essaye par rapport rapport à ce que jai pu voir ou essayer de comprendre mais je sais que je n'y arrive pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    private sub ComboBox1_Change()
     
    'action pour que la ligne sélectionnée s'affiche dans la combobox'
     
    end sub
     
    sub ok_click()
    Dim numlignevide As Integer
    numlignevide = ActiveSheet.Columns(1).Find("").Row(26)
     
    Sheets("accueil").Cells(numlignevide, 1).Value = ComboBox1.Text
    numlignevide = numlignevide + 1
    End Sub

  8. #8
    Membre émérite
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub ComboBox1_Change
     
    For numlignevide = 26 To Range("A" & Rows.Count).End(xlUp).Row
        If Cells(numlignevide , 1) = "" Then
            Exit For
        End If
    Next
     
    Sheets("accueil").Cells(numlignevide, 1).Value = ComboBox1.Text
     
     
    End Sub

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/05/2015, 10h44
  2. Copier/coller à partir d'une liste avec ligne vide
    Par biobill dans le forum Excel
    Réponses: 3
    Dernier message: 11/02/2015, 10h13
  3. impossible de copier coller à partir d'une applet
    Par sof1980 dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 20/10/2006, 15h58
  4. [VBA-A]récuperation de champs à partir d'une listbox
    Par jouf dans le forum VBA Access
    Réponses: 10
    Dernier message: 05/04/2006, 15h43
  5. Réponses: 5
    Dernier message: 05/04/2006, 12h23

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