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 :

Macro copier coller première cellule vide


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Par défaut Macro copier coller première cellule vide
    Bonjour

    J'essai de creer une macro pour copier le valeur d'une cellule "A1" sur la "feuil2" vers la première cellule vide de la colonne "A" sur la "feuil1"

    J'ai fait ca en partant d'une macro que j'ai trouvé sur un forum mais ca ne fonctionne pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Macro1()
    'la plage cellule "A1" en chiffres
    Cells(1, 1).Select
    'copie de la selection
    Selection.Copy
    'Selection d'une autre page dans le classeur
    Sheets("Feuil1").Select
    'selection d'une cellule ou tu desire coller la selection
    Cells(65535, 1).End(xlUp)(2).Row
    'Colle la plage copiée
    ActiveSheet.Paste
    End Sub

    Merci d'avance de votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir Jul85,

    je pense que lorsque vous sélectionnez à partir de :

    Cells(1, 1).Select
    Vous devez le faire sous forme de plage même s'il s'agit d'une seule cellule et utiliser "Range", autrement dit :

    Range(Cells(1, 1), cells(1, 1)).Select

  3. #3
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Macro1()
    'la plage cellule "A1" en chiffres
    Cells(1, 1).Select
    'copie de la selection
    Selection.Copy
    'Selection d'une autre page dans le classeur
    Sheets("Feuil1").Select
    'selection d'une cellule ou tu desire coller la selection
    Cells(65535, 1).End(xlUp)(2).Row <--- c'est là qu'est l'os, il faut remplacer Row par Select
    'Colle la plage copiée
    ActiveSheet.Paste
    End Sub
    mais tout ce code peut également s'écrire comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub test()
    Sheets(2).Cells(1, 1).Copy Sheets(1).Cells(65535, 1).End(xlUp)(2)
    End Sub

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Par défaut
    merci pour la réponse
    est ce que quelqu'un peut m'expliquer à quoi correspond le (2)qui se situe à la fin.

    j'aimerai aussi savoir si il est possible de mettre en couleur toute la ligne qui corespond à la ligne ou la cellule est collé?

    je vais essayer de le faire avec un pastespecial

    merci d'avance

  5. #5
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Citation Envoyé par jul85 Voir le message
    merci pour la réponse
    est ce que quelqu'un peut m'expliquer à quoi correspond le (2)qui se situe à la fin.
    (2) correspond à Offset(1, 0) c'est à dire qu'il va trouver la dernière ligne occupée puis décaler de une ligne vers le bas

    Citation Envoyé par jul85 Voir le message
    j'aimerai aussi savoir si il est possible de mettre en couleur toute la ligne qui corespond à la ligne ou la cellule est collé?
    oui bien sûr c'est possible, mais pourquoi toute la ligne si tu n'utilises que les 20 premières colonnes par exemple ? Ca va allourdir ton fichier inutilement

    Citation Envoyé par jul85 Voir le message
    je vais essayer de le faire avec un pastespecial
    Non ça ne fonctionnera pas sauf...si la ligne d'origine est en couleur aussi

    Le mieux est que tu colles ton code complet après avoir adapté ton copier/coller, sinon on va tourner 20x autour du pot avant d'y arriver.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Par défaut
    J'ai adapté la macro à mon document excel et cela donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub nouvellecategorie()
    Sheets("Nouveau produit").Cells(13, 3).Cut Sheets("source nv produit").Cells(65535, 1).End(xlUp)(2)
    Sheets("Nouveau produit").Cells(13, 3).Cut Sheets("Stock pâtisserie").Cells(65535, 6).End(xlUp)(2)
    End Sub
    j'ai fais cela pour coller la valeur dans 2 feuilles différentes mais ca ne veut pas fonctionner ligne par ligne ca marche mais pas les 2 ensemble

    Pour ce qui est de la mise en couleur des cellules c'est vrai que ce n'est pas la peine de colorer toute la ligne il faudrait la colorer seulement jusqu'a la dernière colonne qui contient des données


    merci a+

  7. #7
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    bin...c'est normal que ça ne fonctionne pas la 2ème fois, tu as utilisé la fonction "Cut" donc au 1er collage il supprime la ligne de ta feuille ("nouveau produit), au 2ème essais...il ne la trouve plus forcément.

    Comme ça à la volée, essaye un .Copy sur la 1ère ligne et un .Cut sur la 2ème
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub nouvellecategorie()
    With Sheets("Nouveau produit").Cells(13, 3)
    .Copy Sheets("source nv produit").Cells(65535, 1).End(xlUp)(2)
    .Cut Sheets("Stock pâtisserie").Cells(65535, 6).End(xlUp)(2)
    End With
    End Sub
    On devrait pas être loin de la bonne solution là

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Par défaut
    oui c vrai que ca parait tomber sous le sens maintenant que tu le dit j'essaierai ca demain et je te tient au courant

    et pour la couleur est ce que tu peut m'aider?

    merci a+

  9. #9
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Voilà, essaye le bout de code ci-dessous.
    Je ne vais pas être très dispo durant quelques jours, donc si ça bug, une âme charitable volera bien à ton secours pour corriger mes conneries
    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
    Sub nouvellecategorie()
    Dim x%, y%
    Application.ScreenUpdating = False
    x = Sheets("source nv produit").Cells(65535, 1).End(xlUp)(2).Row
    y = Sheets("Stock pâtisserie").Cells(65535, 6).End(xlUp)(2).Row
     
    With Sheets("Nouveau produit").Cells(13, 3)
    .Copy Sheets("source nv produit").Cells(x, 1)
    .Cut Sheets("Stock pâtisserie").Cells(y, 1)
    End With
     
    Sheets("source nv produit").Select
    Range(Cells(x, 1), Cells(x, 255).End(xlToLeft)).Interior.ColorIndex = 6 '<-- index couleur
    Sheets("Stock pâtisserie").Select
    Range(Cells(x, 1), Cells(x, 255).End(xlToLeft)).Interior.ColorIndex = 6 '<-- index couleur
    Sheets("Nouveau produit").Activate
    Application.ScreenUpdating = True
    End Sub
    Pour info, concernant les couleurs, dans le fichier joint, tu trouveras l'index des 56 couleurs dispo.

    @+

    Pièce jointe 25914

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Par défaut
    merci fring je vais tester ca cet aprem et je vous tien au courant
    a+

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Par défaut
    C'est bon tout fonctionne bien merci a tous

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

Discussions similaires

  1. [XL-2007] Copier/coller d'une date dans la première cellule vide
    Par AntMi dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 01/07/2014, 15h31
  2. [XL-2010] Problème macro copier-coller des cellules dans deux feuilles Excel
    Par benadry dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 01/04/2014, 19h05
  3. Réponses: 1
    Dernier message: 24/02/2014, 15h48
  4. macro copier coller couleur cellules
    Par bobafric dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/08/2012, 10h46
  5. [XL-2007] copier/coller des cellules vers une première ligne vide
    Par aminee1666 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/06/2011, 23h35

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