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 des valeur d'une ligne selectionnées [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Points : 367
    Points
    367
    Par défaut copier des valeur d'une ligne selectionnées
    bonjour à tous

    je cherche à copier des valeur du ligne que je sélectionne dans une feuille A pour les copier à divers endroits d'une feuille B

    exemple
    Dans la ligne 35 que je sélectionne en feuille A cellule
    je veux que la valeur dans la cellule a35 se copy en c8 de la feuille B

    l'idée est que sur la feuille A j'ai un suivie de facturation et sur la feuille B le modèle de la facture

    Cette manip me permettrais de ré-imprimer la facture facilement

    merci

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2010
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    Dans ta cellule C8 de la Feuille B inscrit simplement :

    tout simplement et fait de même pour tes autres cases, pas vraiment besoin de code, a moins qu'il y est autre condition dans ton application...

  3. #3
    Membre averti Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Points : 367
    Points
    367
    Par défaut
    non, car la ligne peux être différente a chaque fois
    j'aurais du mettre
    Cette manip me permettrais de ré-imprimer les factures facilement
    au lieu de
    Cette manip me permettrais de ré-imprimer la facture facilement

    chaque ligne de la page A correspond à une facture

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2010
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    donc en gros, tu vas remplir tes factures sur la Feuille B et tu veux un suivi sur la feuille A pour pouvoir les consulter plus tard comme tu veux ?

    donc chaque facture aura un # surement pour pouvoir la retracer ? ou tu veux rechercher par nom de client ?

  5. #5
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    Slt, bosk1000, p0l1n
    voila ce que je ferais, je mettrai dans la feuil1 en ligne 1 un controle zone de liste déroulante (controle activeX) .... (Combobox1), que j'alimenterai avec les éléments de la colonne A (si j'ai compris).
    je mets le code directement dans la feuil1 avec l'évènement Activate, donc à chaque fois que l'on active la feuille, la combo ce met à jour.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Worksheet_Activate()
    Dim derlign As Long
    derlign = Range("A65000").End(xlUp).Row
    ComboBox1.Clear
    For i = 3 To derlign
    ComboBox1.AddItem (Range("A" & i))
    Next i
    End Sub
    Ensuite, lorsque je sélectionne un élément de la combo, il se copie dans la cellule C8 de la feuil2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub ComboBox1_Change()
    Sheets("Feuil2").Range("C8") = ComboBox1.Value
    End Sub
    Une idée comme une autre a adapter.
    A+
    @+

    Si vous avez trouvé la solution à votre problème n'oubliez pas d'appuyer sur
    Et n'oubliez pas de voter en appuyant sur si ce message a repondu à vos attentes.
    Ou sur si ce n'est pas le cas

  6. #6
    Membre averti Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Points : 367
    Points
    367
    Par défaut
    Citation Envoyé par p0l1n Voir le message
    donc en gros, tu vas remplir tes factures sur la Feuille B et tu veux un suivi sur la feuille A pour pouvoir les consulter plus tard comme tu veux ?

    donc chaque facture aura un # surement pour pouvoir la retracer ? ou tu veux rechercher par nom de client ?
    simplement, lorsque j'ai besoins de ré-imprimer une facture
    je veux juste en sélectionnant la ligne et en cliquant sur une icône, les éléments de la ligne dont j'ai besoins se copieront sur certaine cellule de la feuille b la facture s'imprimera

    ma seule difficulté et de déclenché la copie sur la ligne active

  7. #7
    Membre averti Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Points : 367
    Points
    367
    Par défaut
    Citation Envoyé par rvtoulon Voir le message
    Slt, bosk1000, p0l1n
    voila ce que je ferais, je mettrai dans la feuil1 en ligne 1 un controle zone de liste déroulante (controle activeX) .... (Combobox1), que j'alimenterai avec les éléments de la colonne A (si j'ai compris).
    je mets le code directement dans la feuil1 avec l'évènement Activate, donc à chaque fois que l'on active la feuille, la combo ce met à jour.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Worksheet_Activate()
    Dim derlign As Long
    derlign = Range("A65000").End(xlUp).Row
    ComboBox1.Clear
    For i = 3 To derlign
    ComboBox1.AddItem (Range("A" & i))
    Next i
    End Sub
    Ensuite, lorsque je sélectionne un élément de la combo, il se copie dans la cellule C8 de la feuil2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub ComboBox1_Change()
    Sheets("Feuil2").Range("C8") = ComboBox1.Value
    End Sub
    Une idée comme une autre a adapter.
    A+
    je n'ai jamais utilisé de contrôle active x
    d'où mon incapacité à faire fonctionné la zone de liste
    j'ai inserer la zone de liste, dans la feuille j'ai copié le code
    mais lorsque je passe la souris sur la zone de liste, ma flèche de souris devient une croix fléché qui me permet de déplacer la zone de liste, donc impossible d'obtenir le moyen de choisir un élément de la colonne a

  8. #8
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    Slt bosk1000,
    mais lorsque je passe la souris sur la zone de liste, ma flèche de souris devient une croix fléché qui me permet de déplacer la zone de liste
    c parce que lorsque tu insères le contrôle (zone de liste déroulante), excel passe en mode "Création". il suffit de cliquer sur l'icône ou il y a une équerre avec un crayon et une règle.

    Ensuite comme l'initialization est faite avec l'événement activate de la feuille1 il faut sélectionner la feuille 2 et resélectionner la feuille 1.
    il y a la possibilité de faire autrement pour l'initialization mais c pour l'exemple.
    A+
    @+

    Si vous avez trouvé la solution à votre problème n'oubliez pas d'appuyer sur
    Et n'oubliez pas de voter en appuyant sur si ce message a repondu à vos attentes.
    Ou sur si ce n'est pas le cas

  9. #9
    Membre averti Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Points : 367
    Points
    367
    Par défaut
    merci
    ce systeme fonctionne

    mais hélas n'est pas pratique, due à la présentation du fichier
    chaque ligne correspondant a une facture, avec 500 factures, je me perdrais vite a chaque fois a défiler le menu déroulant,

    je pensais partir sur une manip plus simple, en un cliq tout d'abord sur la ligne que je selectione et ensuite j'aurais voulu cliqué sur un bouton qui aurait a ce moment là déclenché la manip de copie éléments par éléments de la ligne que j'aurais sélectionné

    quelqu'un a un moyen de declanché sur la ligne active, un code du genre activerow ou row.active

  10. #10
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    slt,
    et avec l'événement beforedoubleclick de la feuille1 un ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    i = Target.Row
    Sheets("Feuil2").Range("C8") = Range("A" & i).Value
    Sheets("Feuil2").Range("F8") = Range("F" & i).Value
    'etc....
    End Sub
    tu double clic sur la cellule et sa déclenche la copie

    ou bien avec un bouton de commande toujours dans la feuille :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub CommandButton1_Click()
    i = Selection.Row
    Sheets("Feuil2").Range("C8") = Range("A" & i).Value
    Sheets("Feuil2").Range("F8") = Range("F" & i).Value
    End Sub
    comme tu l'as dit tu sélectionne une cellule de la ligne et tu appuies sur le bouton
    A+
    @+

    Si vous avez trouvé la solution à votre problème n'oubliez pas d'appuyer sur
    Et n'oubliez pas de voter en appuyant sur si ce message a repondu à vos attentes.
    Ou sur si ce n'est pas le cas

  11. #11
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    bonjour bosk rvtoulon le forum un autre exemple copy la ligne selectionne de la cell a&x A e&x sur sheets 2 en a2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(Cells(ActiveCell.Row, 1), Cells(ActiveCell.Row, 5)).Copy Destination:=Sheets(2).[a2]
    tu utilises un bouton ou double click comme le dit l'ami rvtoulon
    SALUTATIONS

  12. #12
    Membre averti Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Points : 367
    Points
    367
    Par défaut
    genial
    ça fonctionne
    la solution se trouvais dans le" i = Selection.Row"

    merci

  13. #13
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    Slt, bosk1000, laetitia
    la solution de copie de laetitia est interessante car elle remplace le par le "Activecell" dans sa ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Cells(ActiveCell.Row, 1)
    'Cells (numlign, numcolon)
    Je n'y avais pas pensé. Merci
    Bonne journée
    @+

    Si vous avez trouvé la solution à votre problème n'oubliez pas d'appuyer sur
    Et n'oubliez pas de voter en appuyant sur si ce message a repondu à vos attentes.
    Ou sur si ce n'est pas le cas

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

Discussions similaires

  1. [Toutes versions] Récupérer des valeurs dans une ligne dont une seule cellule est selectionnée
    Par Tommy57 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/02/2010, 20h37
  2. [JTable] Lire valeur d'une ligne selectionnée
    Par beck7 dans le forum Composants
    Réponses: 2
    Dernier message: 11/06/2009, 16h50
  3. Recuperation des valeur d'une ligne-DetailView
    Par usermap dans le forum Débuter
    Réponses: 0
    Dernier message: 30/03/2009, 16h43
  4. Copie conditionnelle des valeurs d'une ligne
    Par frisette68 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/02/2008, 02h07
  5. Réponses: 13
    Dernier message: 26/06/2006, 12h10

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