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 :

Copie ligne suite à sélection dans ListBox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2016
    Messages : 33
    Par défaut Copie ligne suite à sélection dans ListBox
    Hello tout le monde,

    Tout d'abord merci beaucoup d'avance pour l'aide que vous pourrez m'apporter.

    Je suis embêté par un problème qui, je l'imagine, est en réalité très simple à résoudre.

    Dans un premier fichier excel, j'ai créé une ListBox permettant d'afficher une liste de "Programmes" provenant d'un deuxième fichier.
    Ce que je cherche à faire est, une fois la sélection du "Programme" faite dans la ListBox, de copier la ligne (provenant du deuxième fichier) vers le 1er fichier (où est situé le bouton faisant apparaître la ListBox).
    Pour se faire, le critère est le "Programme" apparaissant dans la colonne A du deuxième fichier.

    Vous trouverez ci-dessous les deux fichiers.

    A nouveau un grand merci à celles et ceux qui me permettront de progresser !

    **
    Nouveau P&L-Form : fichier dans lequel s'ouvre la ListBox
    CA _2nd semestre 2016 : fichier dans lequel se trouvent les lignes à copier
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour,

    merci de poster le code entrepris et balisé conformément aux règles de ce forum !
    C'est le sine qua non pour pouvoir évaluer ta voie de progression …

    _________________________________________________________________________________________________________
    Je suis Paris, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Tout d'abord merci beaucoup d'avance pour l'aide que vous pourrez m'apporter.
    Hélas aucune dès lors qu'il me faudrait ouvrir (DEUX, en plus) des classeurs tiers.
    Désolé.

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2016
    Messages : 33
    Par défaut
    Le problème étant que je ne sais pas du tout par quoi commencer... :s

    Je vais essayer des tutos et reviens vers vous.

    Merci

  5. #5
    Membre éclairé Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    544
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 544
    Par défaut Copie ligne suite à sélection dans Listbox
    Salut arochab,
    Ce que les experts veulent dire, c'est que tu ne dois pas joindre ton ou tes fichiers à ton post, mais copier ton code (ou la partie concernée de ton code) à l'intérieur de ton post, en cliquant sur le signe dièse (#) en haut, 2ème ligne, tout à droite et en collant ton code entre les 2 balises. Quant à te répondre, ce n'est pas dans mes cordes. Bonne chance.
    Pierre

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Pour moi, la meilleure technique consiste à rapatrier ta liste des programmes de ta source dans une feuille de ton classeur de travail puis de travailler à partir de là. C'est un million de fois plus simple que de travailler avec deux fichiers ouverts.

    Tu fais le rapatriement par VBA, puis tu peux mettre en place des outils Excel (liste déroulante dans la cellule puis index/equiv, recherche par userform, ...).

    Travailler d'un fichier à l'autre avec deux fichiers ouverts, c'est casse-gue... et ça complique inutilement les choses.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2016
    Messages : 33
    Par défaut
    Bonjour,

    Merci pour votre aide, j'ai donc essayé de coder le filtre et la copie vers une nouvelle feuille (en restant donc sur le même fichier) :

    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    Sub Copy_With_AutoFilter1()
    
        Dim My_Range As Range
        Dim CalcMode As Long
        Dim ViewMode As Long
        Dim FilterCriteria As String
        Dim CCount As Long
        Dim WSNew As Worksheet
        Dim sheetName As String
        Dim rng As Range
    
       
        Set My_Range = Range("A11:G" & LastRow(ActiveSheet))
        My_Range.Parent.Select
    
        If ActiveWorkbook.ProtectStructure = True Or _
           My_Range.Parent.ProtectContents = True Then
            MsgBox "La macro la macro ne peut marcher si le classeur est protégé", _
                   vbOKOnly, "Copier vers un nouveau classeur"
            Exit Sub
        End If
    
    
        With Application
            CalcMode = .Calculation
            .Calculation = xlCalculationManual
            .ScreenUpdating = False
            .EnableEvents = False
        End With
        ViewMode = ActiveWindow.View
        ActiveWindow.View = xlNormalView
        ActiveSheet.DisplayPageBreaks = False
    
    
        My_Range.Parent.AutoFilterMode = False
    
    
        My_Range.AutoFilter Field:=1, Criteria1:="=Prix d'ambiance"
    
    
            Set WSNew = Worksheets.Add(After:=Sheets(ActiveSheet.Index))
    
            sheetName = InputBox("Quel est le nom du nouveau classeur?", _
                                 "Nommer le nouveau classeur")
    
            My_Range.Parent.AutoFilter.Range.Copy
            With WSNew.Range("A1")
                .PasteSpecial Paste:=8
                .PasteSpecial xlPasteValues
                .PasteSpecial xlPasteFormats
                Application.CutCopyMode = False
                .Select
            End With
    
    
        
    
        My_Range.Parent.AutoFilterMode = False
    
    
        My_Range.Parent.Select
        ActiveWindow.View = ViewMode
        If Not WSNew Is Nothing Then WSNew.Select
        With Application
            .ScreenUpdating = True
            .EnableEvents = True
            .Calculation = CalcMode
        End With
    
    End Sub
    En revanche, je n'ai pas réussi à faire de sorte que le filtre (ici "Prix d'ambiance") soit modulable en fonction de la sélection faite au préalable dans le userform.

    Ci après le code du userform :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub UserForm_Initialize()
     
    ListBox1.List() = Workbooks("CA _2nd semestre 2016.xlsx").Worksheets("CA 2nd semestre 2016").Range("A3:A40").Value
     
    End Sub
    Je vous remercie d'avance pour votre aide, je comprends la raison pour laquelle vous n'allez pas ouvrir les fichiers.

    arochab

Discussions similaires

  1. Sélection d'une ligne dans listbox
    Par grimgrim dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 08/06/2014, 22h54
  2. [AC-2010] Sélection dans ListBox
    Par sprevost dans le forum IHM
    Réponses: 3
    Dernier message: 24/04/2012, 16h54
  3. [XL-2010] insérer un ligne de données dans listbox
    Par fidecourt dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/12/2010, 10h06
  4. Réponses: 2
    Dernier message: 30/11/2009, 14h40
  5. Sélection dans une ListBox
    Par LoicH dans le forum C++Builder
    Réponses: 2
    Dernier message: 16/04/2005, 22h13

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