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 coller une plage de cellules [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 12
    Points : 9
    Points
    9
    Par défaut Copier coller une plage de cellules
    Bonsoir à tous !

    Débutante en VBA, je me tourne vers ce forum suite à quelques difficultés pour rédiger mon code !
    Je cherche à copier un premier tableau qui se trouve sur la feuille "Calculs". Je sais où il débute mais pas où il finit (sa taille est variable).
    Je souhaite ensuite le coller sur une autre page, Recap. je connais la ligne où je souhaite le coller mais la colonne est variable est donc prédéfini..

    Voici mon premier code


    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
     
     
    Sub CollageETPscoffret()
     
    Dim derlig As Long
    Dim dercol As Long
    Dim WsS As Worksheet, WsC As Worksheet
    Dim i As Integer
    i = 5 'numéro de colonne où je vaos copier mon tableau
     
    Set WsS = Worksheets("Calculs") 'feuille source
    Set WsC = Worksheets("Recap") 'feuille cible
     
    derlig = WsS.Range("B65536").End(xlUp).Row 'je définis la dernière ligne de mon tableau que je souhaite copier
    dercol = WsS.Range("B143").End(xlToLeft).Column 'je définis la dernière colonnede mon tableau que je souhaite copier
     
    Range(WsS.Cells(143, 2), WsS.Cells(derlig, dercol)).Copy 'je copie
     
    WsC.Cells(63, i).Paste
    'je colle mon tableau à partir de ma cellule sur la ligne 63 et à partir de la colonne prédéfinie, ici 5 donc la colonne E
     
    End Sub

    Je crois bien que ma dernière ligne de code est totalement fausse, je ne connais vraiment pas la syntaxe appropriée, et cela malgré de longues recherches sur internet...

    Je serai extrêmement reconnaissante à tous ceux qui pourraient jeter un petit coup d'oeil à mon problème !!!! je bloque complètement... :/
    Merci d'avance !

    Marie

  2. #2
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    Bonjour,


    Si tu veux copier les valeurs, tu n'as pas besoin de faire un copier coller.
    Il te suffit de définir une plage de même taille egale à l'autre.

    Avec Nblig, le nombre de ligne source, NbCol le nombre de colonnes source :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    With WsC
      .range(.Cells(63, i),.Cells(63+nblig, i+nbcol)).value = wss.Range(WsS.Cells(143, 2), WsS.Cells(143+nblig, 2+nbcol)).value
    end with
     
    WsS  'feuille source
    WsC  'feuille cible

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Super ! Merci Alex !

  4. #4
    Invité
    Invité(e)
    Par défaut Bonjour, regarde ça
    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
    Sub CollageETPscoffret()
     
    Dim derlig As Long
    Dim dercol As Long
    Dim WsS As Worksheet, WsC As Worksheet
    Dim i As Integer
    i = 5 'numéro de colonne où je vaos copier mon tableau
     
    Set WsS = Worksheets("Calculs") 'feuille source
    Set WsC = Worksheets("Recap") 'feuille cible
     
    derlig = 143 + WsS.UsedRange.Rows.Count 'je définis la dernière ligne de mon tableau que je souhaite copier
    dercol = 1 + WsS.UsedRange.Columns.Count 'je définis la dernière colonnede mon tableau que je souhaite copier
     
    Range(WsS.Cells(143, 2), WsS.Cells(derlig, dercol)).Copy Destination:=WsC.Cells(63, i)  'je copie
     
     
    'je colle mon tableau à partir de ma cellule sur la ligne 63 et à partir de la colonne prédéfinie, ici 5 donc la colonne E
     
    End Sub

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 11/09/2014, 14h48
  2. Copier/coller une plage de cellule
    Par dimitri70 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 25/07/2013, 21h12
  3. [XL-2010] Pb pour copier coller une plage de cellule variable
    Par eglantine217 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/05/2012, 12h10
  4. Copier/coller une plage de cellules
    Par Pastore dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/04/2012, 23h06
  5. Copier/coller une plage de cellules pleine de trous
    Par ouskel'n'or dans le forum Contribuez
    Réponses: 0
    Dernier message: 21/05/2008, 18h57

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