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 :

Probleme de Copier/Coller sur clic [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 10
    Par défaut Probleme de Copier/Coller sur clic
    Bonjour tout le monde,

    Mon projet est de créer un minijeu sur excel où la personne aura 5 secondes pour cliquer sur la bonne réponse (donc sur une cellule). Chaque réponse est alors enregistrer sur une autre feuille excel dans un nouveau tableau.

    Je désirerais donc que lors d'un clic sur une réponse, le contenu s'enregistre directement sur la feuille "résultat" et que lors du prochain clic la réponse suivante s'enregistre sur la ligne suivante et ainsi de suite.

    J'ai essayer d'utiliser un SelectionChange sur le Worksheet. A ce moment là j'ai mis ma boucle FOR pour effectuer le collage mais il effectue la boucle sans attendre un nouveau clic de ma part. Du coup j'ai la reponse du premier clic qui s'enregistre sur toutes mes lignes du tableau résultat...

    Quelqu'un aurait-il une indication ou un brin d'idée? J'en peut plus là....

    D'avance, merci beaucoup pour toute l'aide que vous m'apporterez

    PS: mes bases en VBA sont TRES limités
    PSbis: Je n'ai pas le droit de mettre de boutonpour remplacer les cellules (donc commande On.Click pas utilisable je pense... :s à voir)

  2. #2
    Expert éminent 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
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("A1:D20")) Is Nothing Then
        If Target.Cells.Count = 1 Then
            With Sheets("Resultat")
                Target.Copy .Range("A" & .Cells(.Rows.Count, 1).End(xlUp).Row + 1)
            End With
        End If
    End If
    End Sub

  3. #3
    Membre averti
    Inscrit en
    Décembre 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 10
    Par défaut
    merci beaucoup pour ta réponse et ton aide.

    Cependant,lorsque j'adapte le code il ne passe pas d'une ligne a l'autre a chaque clic...


    Que signifie ta ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Target.Copy .Range("M" & .Cells(.Rows.Count, 1).End(xlUp).Row + 1)
    Et faut-il définir la variable
    Target.Cells.Count avant tout?

    Merci pour tout

  4. #4
    Expert éminent 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
    Par défaut
    Si tu mettais ton code (peut être ton adaptation inadaptée)
    le Target signifie la plage de cellules sélectionnées!
    signifie le nombre de cellules contenu dans la plage sélectionnée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Target.Copy .Range("M" & .Cells(.Rows.Count, 1).End(xlUp).Row + 1)
    le contenu de la Cellule Target est copié dans la fin de la colonne M

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 15
    Par défaut
    Bonjour

    Utilise cette formule, elle est rapide et surtout elle évite les déplacements d'une feuille à l'autre comme avec "copy".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Sheets(résultat).Range("B65536").End(xlUp).Rows.Offset(1, 0).value = Target.value
    ....value = Target.value si c'est bien évidemment une valeur que tu veux copier, car tout cela manque un peu de clarté...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets(résultat).Range("B65536")
    si tu veux ça en col B, évidemment, sinon change...

  6. #6
    Membre averti
    Inscrit en
    Décembre 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 10
    Par défaut
    Merci, le copier coller marche bien mais le passage a la ligne lui ne se fait pas...

    est-ce la commande

    End(xlUp).Row + 1

    qui devrait me gerer çà?

    j'avoue je ne vois pas trop comment faire le passage à la ligne suivante

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 15
    Par défaut
    Oui (et non)

    A chaque fois que tu utilises la commande, elle détermine la case vide à remplir, sous la précédente, sans avoir besoin de déplacement, c'est même l'intérêt. on ne va sur cette feuille que en fin de jeu, par exemple. (Ou même jamais, si on récupère à la fin la somme de la colonne, par ex.)

  8. #8
    Membre averti
    Inscrit en
    Décembre 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 10
    Par défaut
    C'est bon tout va bien

    Merci Beaucoup pour votre aide.

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

Discussions similaires

  1. Réponses: 17
    Dernier message: 16/03/2006, 17h44
  2. Coder un copier-coller sur un Traitement de texte
    Par Miksimus dans le forum Linux
    Réponses: 2
    Dernier message: 14/03/2006, 13h52
  3. Réponses: 7
    Dernier message: 15/02/2006, 16h12
  4. [VBA Excel]probleme de copier/coller
    Par ogenki dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 31/01/2006, 15h22
  5. Réponses: 3
    Dernier message: 05/11/2005, 15h35

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