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 :

Copier cellules en ligne dans une colonne qui se trouve dans un autre classeur [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Chef d'entreprise
    Inscrit en
    Février 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Chef d'entreprise

    Informations forums :
    Inscription : Février 2015
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Copier cellules en ligne dans une colonne qui se trouve dans un autre classeur
    Bonjour à tous,

    Je suis un noob en VBA et je bloque sur un truc je pense tout bête.
    Dans la macro que je suis en train de confectionner, je sélectionne une plage de cellules discontinues d'une même ligne, genre (A1, B1, F1, G1), je les copie et j'aimerais les coller dans une colonne (B1 à B10) dans un autre classeur et là je ne vois pas comment faire.
    Il doit y avoir une formule toute bête associée au PasteSpecial mais là je coince et je n'ai rien trouvé sur le web de concluant.
    Merci d'avance pour votre aide.


    Après moult recherches, j'ai trouvé la solution

  2. #2
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Bonjour Wushugringo,

    Il y a plusieurs manière de répondre à ton problème.
    Tout d'abord, tu peux passer par un 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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Option Explicit
     
    Sub Wushugringo()
    Dim table(1 To 10) As String
    Dim oRng As Range
    Dim i As Integer
     
    With Worksheets("Wushugringo_origine")
        table(1) = .Range("A1")
        table(2) = .Range("B1")
        table(3) = .Range("C1")
        table(4) = .Range("F1")
        table(5) = .Range("G1")
        table(6) = .Range("H1")
        table(7) = .Range("L1")
        table(8) = .Range("O1")
        table(9) = .Range("P1")
        table(10) = .Range("Q1")
    End With
     
    With Worksheets("Wushugringo_final")
        Set oRng = .Range("B1")
        For i = 0 To 9
            oRng.Offset(i, 0) = table(i + 1)
        Next i
    End With
     
    End Sub
    Tu enregistres les valeurs que tu veux et par un offset décalant simplement les cellules de destination, tu "déposes" tes valeurs.

    Ensuite, tu peux, comme tu l'as remarqué, passer par un PasteSpecial.
    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
    Sub Wushugringo2()
    Dim oRng_ori As Range
    Dim oRng_fin As Range
    Dim i As Integer
     
    With Worksheets("Wushugringo_origine")
        Set oRng_ori = Union(.Range("A1:C1"), .Range("F1:H1"), .Range("L1"), .Range("O1:Q1"))
    End With
     
    With Worksheets("Wushugringo_final")
        Set oRng_fin = .Range("C1")
        oRng_ori.Copy
        oRng_fin.PasteSpecial Paste:=xlPasteAll, Transpose:=True
    End With
     
    End Sub
    Personnellement, je n'aime pas du tout le .Copy et .Paste ou .PasteSpecial.

    Mais après, c'est à toi de faire ton choix !

    On te proposera surement d'autres méthodes, ton problème restant simple !

    Cordialement,
    Kimy

  3. #3
    Candidat au Club
    Homme Profil pro
    Chef d'entreprise
    Inscrit en
    Février 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Chef d'entreprise

    Informations forums :
    Inscription : Février 2015
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    Merci beaucoup pour tous ces conseils. Le coup du tableau je n'y avais pas du tout pensé. Moi tout bêtement, j'ai trouvé une solution en copiant cellules par cellules d'un classeur à l'autre, ça fonctionne mais je vais essayer ta technique qui est plus propre.

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

Discussions similaires

  1. Appeler une fonction qui se trouve dans une autre fonction
    Par waxouse dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 11/05/2009, 16h28
  2. Réponses: 1
    Dernier message: 09/02/2009, 01h36
  3. Réponses: 10
    Dernier message: 12/09/2008, 10h09
  4. Réponses: 2
    Dernier message: 02/04/2008, 19h55
  5. Réponses: 2
    Dernier message: 12/11/2007, 21h04

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