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 :

[VBA-E] souci avec copier/coller


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 102
    Par défaut [VBA-E] souci avec copier/coller
    Bonjour a tous

    voila en gros mon souci, dans un Workbook_SheetActivate, je viens mettre de la couleur ds certaines celulle par la fct ActiveSheet...(un systeme de raffraichissement).

    le souci: si je selectionne une celulle d'une autre feuille, que je copie cette celulle,quand je vais sur une autre feuille, automatiquement , du faite de la fct activeSheet.range dans ma procedure Workbook_SheetActivate, ca remet le presse papier a zero, donc ne peut plus faire un Paste.

    Y a t'il une solution pour garder une celulle copier et garder ma fonction telle qu'elle...
    ou bien
    comment je peux savoir si une zone de celulle est selectionner et en copie, la feuille ou se trouve cette zone ainsi que le range selectionner (en mode; les petits points qui tourne autour de la zone selectionner)?

    merci par avance


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    ActiveSheet.Range("G4:g22").Font.ColorIndex = xlAutomatic
    End Sub

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Quand tu colles ta cellule, au lieu de le faire avec Paste, fais-le avec PasteSpecial. Regarde dans l'aide ou enregistre la macro, mets-nous le code, on te le simplifiera
    Activecell signifie que tu sélectionnes ta cellule (!) N'utilise-pas Select ni activate pour faire ça. Tu peux très bien t'en passer et ça accélérera ta procédure.
    Il suffit que tu désignes la feuille et la cellule (ainsi que le classeur si les données proviennent d'un autre classeur). Ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    NoLigne = 5
    NoColonne = 3 'C
    Workbooks(NomFichier).worksheets(NomFeuille).cells(NoLigne, NoColonne).copy
    Activesheet.Range("D6").PasteSpecial Paste:=xlValues
    Paste:=xlValues ne colle que la valeur, non le format
    Tu dis

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 102
    Par défaut
    Merci pour ta réponse, j'ai du mal m'expliquer...

    quand je suis sur une feuille 1, et que je memorise une cellule avec les touches(non avec une macro)... quand je bascule sur une autre feuille
    ma cellule copié n'est pas plus active...
    ca deselectionne a cause de cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Range("G4:g22").Font.ColorIndex = xlAutomatic
    Le faite de mettre une couleur vire la memorisation de mon copier.

    Le phenomene est identique manuellement, va sur une feuille 1, capture une zone et copie la par le bais de Ctrl+C, va sur une autre feuille
    choisi une celulle, mets la en rouge!!!
    et tu vas te rendre compte que tu ne peux plus faire CTrl+V,

    ca doit etre du a Excel qui ne permet pas de faire ce que je souhaite...
    c'est pour ca que je voulais contourné le probleme!!
    avant d'inserer mes couleurs ds l'evenement activesheet, je voulais savoir si une zone avait été copié, ensuite sur quelle feuille, et les coordonnées de cette zone capturer, je pouvais donc la recreer apres avoir changer mes couleurs....
    mais je n'ai pas trouvé les fonctions qui te disent ou se trouve le copier....
    juste selection.copy, mais cela met juste ds le presse papier, moi j'ai besoin de connaitre l'origine du copy

    un petit souci sympa!!! j'ai l'habitude de delphi, mais la, je depends d'excel et de ses possibilités en evenements....

    beyey

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    en vba je ne vois pas comment "sauver" puis récupérer le contenu du presse papier.., ( avec les apis peu-être..)

    mais tu peu peu-être contourner ton probléme :
    déjà pose toi la question ... ( et donne nous la réponse..) quand est-ce que ces couleurs peuvent changer ...? ne peu tu pas choisir un autré événement pour appliquer ta correction ..? l'ouverture ou la fermeture du classeur par exemple..?
    pour les événements d'un classeur voir :
    Les évènements du module objet ThisWorkbook (Classeur)


  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Ok, j'ai répondu à côté...
    Tu as peut-être une solution du côté de le feuille de code de la feuille de calcul, si tu as la possibilité de mémoriser "quelque part" l'adresse de la cellule sélectionnée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
          msgbox target.address
          'où target de fournit l'adresse de la cellule sélectionnée
    end sub
    Tu dis

  6. #6
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Utilise un autre événement que le SheetActivate...

    Pour ma part, je choisirais le Worksheet_Change, ce qui me paraît plus logique puisque tant que rien n'a été modifié, il n'y a rien à raffraichir.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

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

Discussions similaires

  1. [XL-2013] VBA : Ajout feuille M+1 avec Copier/coller
    Par curiosity69 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/05/2015, 16h50
  2. [XL-2010] Boucle VBA ou formule avec Copier Coller Image
    Par moilou2 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/07/2013, 15h16
  3. Problemes avec copier/coller avec VI
    Par fgalves dans le forum Linux
    Réponses: 7
    Dernier message: 06/01/2009, 15h43
  4. [VBA] Pb avec Copier/coller d'une feuille Excel
    Par sebastien_oasis dans le forum Excel
    Réponses: 3
    Dernier message: 14/12/2007, 11h08
  5. [VBA Excel]probleme de copier/coller
    Par ogenki dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 31/01/2006, 14h22

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