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 :

transfert de valeurs d'une feuille dans une autre d'après la cellule active [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Février 2010
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 249
    Points : 69
    Points
    69
    Par défaut transfert de valeurs d'une feuille dans une autre d'après la cellule active
    Bonjour,

    Je vais essayer de bien vous expliquer ce que je cherche à faire :

    J'ai 2 feuilles : Une ou il y a les coordonnées de mes clients et une autre ou il y a un courrier.

    J'aimerais que lorsque je choisis un client (je me positionne sur son nom, la cellule active est donc la ligne du client choisi), ensuite je clique sur un bouton qui active la feuille n°2 en prenant les valeurs de la ligne de la feuille 1 et les recopies en feuille 2.

    Exemple :

    En feuille 1 j'ai plusieurs colonnes :
    colonne B : Nom
    colonne C : Prénom
    colonne D : Adresse...

    avec autant de ligne que de clients

    J'ai le nom du client1 en B3, le nom du client2 en B4, le nom du client3 en B5... Si je me met sur B3 et que je clic sur le bouton, le nom de ce client sera transféré en C22 dans mon courrier, le prénom (colonne C) en C23 dans mon courrier, l'adresse (colonne D) en C24 dans mon courrier...

    Est-ce que je me suis bien expliqué ?

    J'ai essayé le début par ça (attention je ne suis pas très doué donc ce code vous paraitra peut-être complètement stupide, mais j'essaie), je sais qu'il manque la moitié du code mais je suis coincé :

    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
    Private Sub CommandButton1_Click()
        Dim NomClient As Long
        Dim CelluleTrouvee As Range
     
        With Application
            ' Suppression des évènements
            .EnableEvents = False
            .ScreenUpdating = False
     
            NomClient = Worksheets("Clients).Range("B3").Cells(NumeroLigne, 1) 'Je récupère le nom du client
            Worksheets("Courrier").Activate ' Activation de la 2ème feuille
            .FindFormat.Clear ' Initialisation de la recherche
     
     
             ' Retour aux conditions initiales
            .EnableEvents = True
            .ScreenUpdating = True
        End With
    End Sub

  2. #2
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub CommandButton1_Click()
    Dim Lig As Integer
     
    Lig = ActiveCell.Row
    Sheets("Courrier").Range("C22:C24").Value = Application.Transpose(Range("B" & Lig & ":D" & Lig).Value)
    End Sub

  3. #3
    Débutant  
    Profil pro
    Inscrit en
    Février 2010
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 249
    Points : 69
    Points
    69
    Par défaut
    Merci beaucoup, ça marche très bien
    j'aurais 2 petites questions :

    je cherche un tutoriel qui m'aiderait à comprendre comment créer ces premières lignes qui sont dans un code. Je ne sais jamais quel Dim il faut mettre. Si vous ne savez pas c'est pas grave je vais bien finir par tomber dessus.

    Par contre je me demandais, mon code est donc le suivant, car j'ai rajouté des colonnes et j'ai rajouté d'aller sur la feuille concerné :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub CommandButton6_Click()
    Dim Lig As Integer
     
    Lig = ActiveCell.Row
    Sheets("Courrier").Range("C22:C31").Value = Application.Transpose(Range("B" & Lig & ":K" & Lig).Value)
    Sheets("Courrier").Activate
    End Sub
    Je me demandais comment ça aurait fait si mes colonnes n'était pas à suivre
    si j'avais eu la colonne C22, C25, C29 ) remplir par rapport au colonne B, E, A

    Est-ce que j'aurais pû faire comme ca ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub CommandButton6_Click()
    Dim Lig As Integer
     
    Lig = ActiveCell.Row
    Sheets("Courrier").Range("C22,C25,C29").Value = Application.Transpose(Range("B" & Lig &,"E" & Lig,"A" & Lig).Value)
    Sheets("Courrier").Activate
    End Sub
    Merci. Je veux juste être sur de comprendre

  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
    Sépare tes lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim Lig As Integer
     
    Lig = ActiveCell.Row
    With Sheets("Courrier")
        .Range("C22").Value = Range("B" & Lig).Value
        .Range("C25").Value = Range("E" & Lig).Value
        .Range("C29").Value = Range("A" & Lig).Value
        .Activate
    End With
    Tutoriel1
    Tutoriel2

  5. #5
    Débutant  
    Profil pro
    Inscrit en
    Février 2010
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 249
    Points : 69
    Points
    69
    Par défaut
    merci beaucoup Mercatog, j'ai compris, il faut prendre les valeurs une par une.

    merci pour les tutoriels, je vais essayer de plancher sur ça ce week-end.

    tu me sauves encore une fois

  6. #6
    Débutant  
    Profil pro
    Inscrit en
    Février 2010
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 249
    Points : 69
    Points
    69
    Par défaut
    je rouvre cette discussion, ca je suis en train d'utiliser ce code mais j'ai un problème. Je dois insérer dans une cellule 2 valeurs : NOM et PRENOM à la suite. Je prends le NOM dans la colonne d'une feuille et le PRENOM dans une autre colonne mais je veux les mettre dans la même cellule, l'un à côté de l'autre et donc j'obtient ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub CommandButton7_Click()
    Dim Lig As Integer
     
    Lig = ActiveCell.Row
    With Sheets("Courrier")
        .Range("A16").Value = Range("B" & Lig).Value
        .Range("A16").Value = Range("C" & Lig).Value
        .Range("A17").Value = Range("D" & Lig).Value
        .Range("A18").Value = Range("E" & Lig).Value
        .Range("A18").Value = Range("F" & Lig).Value
        .Activate
    End With
    End Sub
    la cellule A16 se retrouve avec 1 seul valeur, le prénom qui était en colonne C qui a effacer le nom en colonne B car il est dans la même cellule
    Même chose pour A18 qui sont le CP et la Ville

    J'ai donc essayé ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub CommandButton7_Click()
    Dim Lig As Integer
     
    Lig = ActiveCell.Row
    With Sheets("Courrier")
        .Range("A16").Value = Range("B" & Lig).Value
        .Range("*" & "A16").Value = Range("C" & Lig).Value
        .Range("A17").Value = Range("D" & Lig).Value
        .Range("A18").Value = Range("E" & Lig).Value
        .Range("*" &"A18").Value = Range("F" & Lig).Value
        .Activate
    End With
    End Sub
    mais ça ne marche pas.
    Comment on fait dans ce cas

  7. #7
    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
    Oh là là, à pas de tortues dis donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub CommandButton7_Click()
    Dim Lig As Integer
     
    Lig = ActiveCell.Row
    With Sheets("Courrier")
        .Range("A16").Value = Range("B" & Lig).Value & " " & Range("C" & Lig).Value
        .Range("A17").Value = Range("D" & Lig).Value
        .Range("A18").Value = Range("E" & Lig).Value &" " & Range("F" & Lig).Value
        .Activate
    End With
    End Sub

  8. #8
    Débutant  
    Profil pro
    Inscrit en
    Février 2010
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 249
    Points : 69
    Points
    69
    Par défaut
    il faut toujours que je me complique la vie...

    merci encore Mercatog

  9. #9
    Débutant  
    Profil pro
    Inscrit en
    Février 2010
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 249
    Points : 69
    Points
    69
    Par défaut
    Bonjour,

    désolé je rouvre encore ce poste car j'ai un problème encore avec ce code.
    Je veux faire la même chose mais en laissant ce qu'il y a déjà dans la cellule de destination. Je veux rajouter la valeur après le texte déjà existant.
    J'ai essayé ça et plein d'autres choses mais rien ne marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub CommandButton7_Click()
    Dim Lig As Integer
     
    Lig = ActiveCell.Row
    With Sheets("Courrier")
        .Range("A16").Value = Range("B" & Lig).Value & " " & Range("C" & Lig).Value
        .Range("A17").Value = Range("D" & Lig).Value
        .Range("A18").Value = Range("E" & Lig).Value &" " & Range("F" & Lig).Value
        .Range("A22").Value = "" &" " & Range("H" & Lig).Value
        .Activate
    End With
    End Sub
    EDIT :
    j'ai oublié une chose, la dernière ligne de code que j'essaie de faire avec A22 et la colonne H, la colonne H ne vient pas de la feuille active ou se situe le bouton (comme c'est le cas pour les 3 autres). La colonne H ou se situe la valeur en question se situe sur la feuille "Véhicules"

  10. #10
    Débutant  
    Profil pro
    Inscrit en
    Février 2010
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 249
    Points : 69
    Points
    69
    Par défaut
    D'après vos MP et vos messages dans mes posts je pense que apparemment je post trop, j'arrête donc ce post et tous les autres et je m'excuse si j'ai pû gêner ce forum.

    Merci en tout cas à tout ceux qui m'ont accordé de l'aide

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

Discussions similaires

  1. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  2. [E-00] Syntaxe pour insérer une ligne ou une colonne dans une feuille
    Par Benjycool dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/02/2009, 09h27
  3. Insérer une feuille dans une feuille
    Par PsychedeChed dans le forum Excel
    Réponses: 2
    Dernier message: 07/02/2008, 14h01
  4. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  5. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13

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