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 :

Code pour clic dans une cellule et afficher le contenue dune autre cellule vers une troisieme


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    sculpteur sur pierres
    Inscrit en
    Avril 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : sculpteur sur pierres
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Avril 2018
    Messages : 10
    Par défaut Code pour clic dans une cellule et afficher le contenue dune autre cellule vers une troisieme
    Bonjour

    une personne bien attentionnée pour m 'aider svp voila mon problème pour trouver un code de a insérer dans VBA

    je voudrais savoir comment faire pour en cliquant sur une cellule envoyer le contenue dune autre cellule vers une troisième cellule
    je m 'explique j 'ai 2 lignes avec 40 cellules(chacune) de CD23:DQ23 l 'autre de CD26:DQ26

    si je clique sur CD23 je veux que le contenue de la cellule AQ12 s 'affiche en cellule $CX9 ; si je clique sur CD26 je veux que le contenue de la cellule AX12 s'affiche en $CX9
    si je clique sur CE23 je veux que le resultat de la cellule AQ13 s"affiche en $CX9 ;si je clique sur CE26 je veux que le resultat de la cellule AX13 s"affiche en $CX9
    si je clique sur CF23 je veux que le resultat de la cellule AQ14 s"affiche en $CX9 ;si je clique sur CF26 je veux que le resultat de la cellule AX14 s"affiche en $CX9
    si je clique sur CG23 je veux que le resultat de la cellule AQ15 s"affiche en $CX9 ;si je clique sur CG26 je veux que le resultat de la cellule AX15 s"affiche en $CX9 etc jusque a la derniere cellule

    si je clique sur DQ23 je veux que le resultat de la cellule AQ51 s"affiche en $CX9 ;si je clique sur DQ26 je veux que le resultat de la cellule AX51 s"affiche en $CX9 j aimerais savoir si je répète a peu près la même opération un peu plus bas dans la même feuille dois je inscrire les codes dans 2 modules différents

    merci de votre aide

  2. #2
    Membre éclairé
    Homme Profil pro
    contrôle de gestion - data management
    Inscrit en
    Mai 2018
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : contrôle de gestion - data management
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2018
    Messages : 33
    Par défaut
    Bonjour, mets ce code dans le module de ta feuille, remplace "taFeuille" par le nom de l'onglet et "DQ" par la derniere colonne concernée de ton tableau :

    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 Worksheet_SelectionChange(ByVal Target As Range)
     
    Dim wb As Workbook
    Dim ws As Worksheet
    Set wb = ThisWorkbook
    Set ws = wb.Worksheets("taFeuille")
     
    If Not Application.Intersect(Target, ws.Range("CD23:DQ23,CD26:DQ26")) Is Nothing Then
     
        If Target.Row = 23 Then
            i = 0
        Else
            i = 7
        End If
        ws.Range("CX9").Value = ws.Range("AQ12").Offset(Target.Column - 82, i).Value
     
    End If
     
    End Sub

  3. #3
    Membre habitué
    Homme Profil pro
    sculpteur sur pierres
    Inscrit en
    Avril 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : sculpteur sur pierres
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Avril 2018
    Messages : 10
    Par défaut le code ne fonctionne pas
    Bonjour
    merci pour ton code mais je n arrive pas a le faire marcher le débogueur affiche cette ligne en jaune
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ws.Range("CX9").Value = ws.Range("AQ12").Offset(Target.Column - 121, i).Value
    je ne sais pas d'où vient le problème j ai v chanhe le column par column 121 puisque DQ correspond a la colonne 121 je te mets le code tel que l'ai mis dans ma feuille ne faut il pas ajouter aussi avant
    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
    Private Sub CommandButton1_Click()
     
    End Sub
     
     
     
     
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
    Dim wb As Workbook
    Dim ws As Worksheet
    Set wb = ThisWorkbook
    Set ws = wb.Worksheets("Graphe Vertical")
     
    If Not Application.Intersect(Target, ws.Range("CD23:DQ23,CD26:DQ26")) Is Nothing Then
     
        If Target.Row = 23 Then
            i = 0
        Else
            i = 7
        End If
        ws.Range("CX9").Value = ws.Range("AQ12").Offset(Target.Column - 121, i).Value
     
    End If
     
    End Sub

  4. #4
    Membre éclairé
    Homme Profil pro
    contrôle de gestion - data management
    Inscrit en
    Mai 2018
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : contrôle de gestion - data management
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2018
    Messages : 33
    Par défaut
    Il ne faut pas modifier la valeur 82 qui correspond au numero de la 1ere colonne paramétrée pour le décalage. Je disais éventuellement changer DQ23 ou DQ26 dans la 1ere ligne pour redéfinir le perimetre d'action de la macro.

    Tu as bien mis le code dans la feuille "graphe vertical" et non pas dans workbook ou dans un module ? Quel message d'erreur s'affiche si oui ?

  5. #5
    Membre habitué
    Homme Profil pro
    sculpteur sur pierres
    Inscrit en
    Avril 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : sculpteur sur pierres
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Avril 2018
    Messages : 10
    Par défaut
    re
    bravo tu es le meilleur ca fonctionne jai remis 82 et c'est bon
    maintenant je te pose une autre question ce code va me servir pour deux graphes qui sont strictement identique'(il est en dessous de l'autre sauf que ,un est pour les cotations de la journée et l autre fait référence au cours de la veille donc a la place de CD 23 et CD26 je vais me retrouver sur le deuxieme en CD66 et CD 69 si je veux que lorsque je suis sur le deuxieme graphe j ai les mes resultats dans la cellule $CX9 comment faut il que je m 'y prenne???
    sur une autre feuille j ai aussi 2 autres graphes mais mes valeurs sont en colonne au lieu d etre en ligne Ex j ai 2 plages une de CV12:CV51 et l autre de CX12:CX51
    EX je veux que
    si je clique une fois sur CV12 j 'ai le contenue de la cellule AQ12 en $CX9 si je clique en CX12 j ai le contenue de la cellule AX12 en $CX9
    si je clique une fois sur CV13 j 'ai le contenue de la cellule AQ13 en $CX9 si je clique en CX13 j ai le contenue de la cellule AX13 en $CX9 ....etc jusqu'a

    si je clique une fois sur CV51 j 'ai le contenue de la cellule AQ51 en $CX9 si je clique en CX51 j ai le contenue de la cellule AX51 en $CX9 pour le graphe en dessous meme principe mais les plages sont
    de CV58:CV97 et d CX58: CX97 toujours la meme cellule de destination $CX9 Comment mettre tout ca dans le même code ou alors un code différent pour chaque graphe

    merci de ta compétence, tu n as pas mis longtemps à trouver ah oui j oubliais j ai mis cela avant ton code je ne sais pas si c était bien utile
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Private Sub CommandButton1_Click()
    End Sub
    j ai un ou deux codes qui disfonctionnent dans mon fichier est ce pas trop te demander de vouloir m (aider excuse moi je suis sculpteur sur pierres et pas programmeur je me débrouille avec les formules mais avec la programmation j ai pas eu encore le temps pour apprendre puis j ai 60 balais je me demande si ce n 'est pas trop tard pour moi encore une fois grand merci de ta patiente
    Bonne soirée


    End Sub

  6. #6
    Membre habitué
    Homme Profil pro
    sculpteur sur pierres
    Inscrit en
    Avril 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : sculpteur sur pierres
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Avril 2018
    Messages : 10
    Par défaut Modif
    Citation Envoyé par vincent_merle Voir le message
    Il ne faut pas modifier la valeur 82 qui correspond au numero de la 1ere colonne paramétrée pour le décalage. Je disais éventuellement changer DQ23 ou DQ26 dans la 1ere ligne pour redéfinir le perimetre d'action de la macro.

    Tu as bien mis le code dans la feuille "graphe vertical" et non pas dans workbook ou dans un module ? Quel message d'erreur s'affiche si oui ?
    Bonjour ton code marche mais j ai eu besoin de le modifier pour récupérer d'autres infos jy ai mis un peu de temps mais j'ai fini par y arriver
    je te mets le code tu me diras si c'est comme cela ou si il y a moyen de l optimiser
    maintenant je suis entrain d 'essayer de faire la même opération sur le graphe horizontal en feuille statist (2) mais la c 'est beaucoup plus laborieux je te mets aussi ce que j ai écrit mais çà ne fonctionne pas en fait je veux arriver a cela

    sur la feuille statist(2)j ai aussi 2 autres graphes mais mes valeurs sont en colonne au lieu d etre en ligne Ex j ai 2 plages une de CV12:CV51 et l autre de CX12:CX51

    si je clique une fois sur CV12 j 'ai le contenue de la cellule AQ12 en $CX9 si je clique en CX12 j ai le contenue de la cellule AX12 en $CX9
    si je clique une fois sur CV13 j 'ai le contenue de la cellule AQ13 en $CX9 si je clique en CX13 j ai le contenue de la cellule AX13 en $CX9 ....etc jusqu'a

    si je clique une fois sur CV51 j 'ai le contenue de la cellule AQ51 en $CX9 si je clique en CX51 j ai le contenue de la cellule AX51 en $CX9 pour le graphe en dessous meme principe mais les plages sont
    de CV58:CV97 et d CX58: CX97 toujours la meme cellule de destination $CX9 Comment mettre tout ca dans le même code ou alors un code différent pour chaque graphe

    et je veux rajouter en plus
    si je clique en CV12 ou en CX12 afficher moi le contenue de la cellule AP12 dans la cellule $CP$10 ET afficher moi le contenue de la cellule CV12 ou Cx12(ce sont les memes) en $CM$10

    si je clique en CV13 ou en CX13( ce sont les memes) afficher moi le contenue de la cellule AP13 dans la cellule $CP$10 ET afficher moi le contenue de la cellule CV13 ou CX13 en $CM$10 etc..... jusqua CV51 et CX51

    c'est trop dur pour moi
    il faut que j achète un bouquin pour apprendre les termes et la base voila je te mets le premier que j ai reussi à faire et le deuxieme en dessous qui ne marche pas ""ne te foue pas de moi"" j ai fait avec les moyens de bord

    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
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
    Dim wb As Workbook
    Dim ws As Worksheet
    Set wb = ThisWorkbook
    Set ws = wb.Worksheets("Graphe Vertical")
     
    If Not Application.Intersect(Target, ws.Range("CD23:DQ23,CD26:DQ26")) Is Nothing Then
     
        If Target.Row = 23 Then
            i = 0
        Else
            i = 7
        End If
        ws.Range("CX9").Value = ws.Range("AQ12").Offset(Target.Column - 82, i).Value
     
    End If
    If Not Application.Intersect(Target, Range("CD23:DQ23,CD26:DQ26")) Is Nothing Then
    Range("CM10") = Target
    End If
     If Not Application.Intersect(Target, ws.Range("CD23:DQ23,CD26:DQ26")) Is Nothing Then
     
        If Target.Row = 23 Then
        i = 0
        Else
            i = 0
     
    End If
        ws.Range("CP10").Value = ws.Range("AP12").Offset(Target.Column - 82, i).Value
    End If
    End Sub

    voila le deuxième j imagine que tu vas rigoler(j ai pas tous mis pour le moment je procède par étape) hélas ça ne marche pas pour celui ci

    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
    Private Sub CommandButton1_Click()
     
    End Sub
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
    Dim wb As Workbook
    Dim ws As Worksheet
    Set wb = ThisWorkbook
    Set ws = wb.Worksheets("statist(2)")
     
    If Not Application.Intersect(Target, ws.Range("CV12:CV51,CX12:CX51")) Is Nothing Then
     
        If Target.Row = 12 Then
            i = 0
        Else
            i = 7
        End If
        ws.Range("CX9").Value = ws.Range("AQ12").Offset(Target.Column - 100, i).Value
     
    End If
     
    End Sub

  7. #7
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut
    Bonsoir, Je pense que l'erreur vient de -121, j'hésite entre -59 ou -60? Essayez, je crois qu'un des deux est la bonne solution.

    Citation Envoyé par AG81000 Voir le message

    ws.Range("CX9").Value = ws.Range("AQ12").Offset(Target.Column - 121, i).Value
    Cordialement

  8. #8
    Membre habitué
    Homme Profil pro
    sculpteur sur pierres
    Inscrit en
    Avril 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : sculpteur sur pierres
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Avril 2018
    Messages : 10
    Par défaut
    Citation Envoyé par Transitoire Voir le message
    Bonsoir, Je pense que l'erreur vient de -121, j'hésite entre -59 ou -60? Essayez, je crois qu'un des deux est la bonne solution.



    Cordialement
    c etait bien ça l 'erreur merci
    je cherche maintenant un autre code pour a partir d'un clic dans 4 plages renvoyer le contenues de certaines cellules vers d'autres
    j ai 2 plages une en CV12;CV51 l 'autre de CX12 à CX51

    si je clique sur CV12 je veux que le contenue de CV12 aille en $CM$10, le contenue de AQ12en $CX$9, le contenue de AP12 en$ CP$10
    si je clique sur CX12 je veux que le contenue de CX12 aille en $CM$10, le contenue de AX12en $CX$9, le contenue de AP12 en$ CP$10
    si je clique sur CV13 je veux que le contenue de CV13 aille en $CM$10, le contenue de AQ13en $CX$9, le contenue de AP13en$ CP$10
    si je clique sur CX13 je veux que le contenue de CV13 aille en $CM$10, le contenue de AX13en $CX$9, le contenue de AP13en$ CP$10
    etc jusqu'a CV51 et CX51

    pour les 2 autres plages CV58:CV97 et CX58: CX97

    si je clique sur CV58 je veux que le contenue de CV58 aille en $CM$10, le contenue de AQ12en $CX$9, le contenue de AP12 en$ CP$10
    si je clique sur CX58 je veux que le contenue de CX58 aille en $CM$10, le contenue de AX12en $CX$9, le contenue de AP12 en$ CP$10
    si je clique sur CV59 je veux que le contenue de CV59 aille en $CM$10, le contenue de AQ13en $CX$9, le contenue de AP13 en$ CP$10
    si je clique sur CX59 je veux que le contenue de CX59 aille en $CM$10, le contenue de AX13en $CX$9, le contenue de AP13en$ CP$10
    etc jusqu a CV97 et CX97

    merci de votre aide

  9. #9
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut
    Bonsoir,
    Maintenant, je crois que vous n'avez plus besoin de nous. Vous avez un code qui fonctionne avec certaines cellules, si vous voulez changer de cellules , il vous suffit de modifier le code en fonction des nouvelles cellules. Si vous voulez avoir les deux en même temps, faites un copier coller du code existant, cela va vous donner une nouvelle Macro qui vous modifierez avec les nouvelles valeurs. N'oubliez pas de changer le nom de la nouvelle macro ex( Sub Test() sera à modifier par exemple en Sub Test2()) afin de ne pas avoir 2 macros qui auraient le même nom.
    Ainsi de suite si vous en avez 3 ou 4 vous pourrez ainsi les lancer séquentiellement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Depart()
    Test
    Test2
    Test3
    End sub
    Cordialement

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 16/06/2013, 14h43
  2. [WD10] code pour afficher le contenu de la table liée à une fiche
    Par yeboue6 dans le forum WinDev
    Réponses: 1
    Dernier message: 03/11/2011, 23h03
  3. [XL-2003] afficher le contenu de plusieurs cellule dans une seule
    Par Philippe76 dans le forum Excel
    Réponses: 4
    Dernier message: 02/04/2011, 19h00
  4. [XL-2003] Remplissage d'une cellule en fonction du contenu d'autres cellules.
    Par homer83140 dans le forum Excel
    Réponses: 27
    Dernier message: 13/01/2011, 16h39
  5. Sommer des cellules en fonction du contenu d'autres cellules
    Par jnmab dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 30/12/2007, 22h05

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