Copie d'une plage spécifique

- - Dernière réponse : ManuAntibes
Messages postés
482
Date d'inscription
mardi 24 octobre 2000
Dernière intervention
18 mars 2019
- 15 mars 2019 à 23:54
Bonjour, je cherche à intégrer un macro à un bouton. Cette macro devrait:
copier la plage C3 à G3, et la coller (sans la mise en forme, juste les valeurs) dans la dernière cellule non vide de la colonne C en partant de C3. J'ai essayé avec les différentes solution proposées ici mais cela ne fonctionne pas. Une idée? Je vous remercie
Afficher la suite 

Votre réponse

2 réponses

Messages postés
482
Date d'inscription
mardi 24 octobre 2000
Dernière intervention
18 mars 2019
3
0
Merci
Bonjour



'Pour un copier / coller(Uniquement la valeur)


Après a toi de mettre tous cela bout à bout.
Fait faire une boucle avec for next pour recup dans une variable le contenu de C3 à G3.

dim TonContenu as variant
For x = 0 To 4 
TonContenu+ = Cells(3, x) 
Next x


' Pour selectionner la dérniere cellule plein de la colonne C
    Range("C65535").Select
    Selection.End(xlUp).Select


'Pour recup la position de la dernière cellules de la colonne C
Dim PosX, PosY As Variant

 PosX = ActiveCell.Column
    PosY = ActiveCell.Row
    Cells(PosY, PosX ).Select
    ActiveSheet.Paste

 'pour coller uniquement la valeur
 Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False


j'espère t'avoir aidé, mais tu peux tous faire avec l'enregistrement de macro, je viens de le faire pour me rememorer les codes.
A+
Patrice33740
Messages postés
7679
Date d'inscription
dimanche 13 juin 2010
Dernière intervention
21 mars 2019
16 -
Bonjour ManuAntibes,

Avec VBA, il faut absolument éviter d'utiliser .Select, c'est la principale source d'erreur quand les codes ne fonctionnent plus.
ManuAntibes
Messages postés
482
Date d'inscription
mardi 24 octobre 2000
Dernière intervention
18 mars 2019
3 -
Merci pour les conseils
Commenter la réponse de ManuAntibes
Messages postés
7679
Date d'inscription
dimanche 13 juin 2010
Dernière intervention
21 mars 2019
16
0
Merci
Bonjour,

Essaies :
Option Explicit
Sub Test()
Dim r As Range, c As Range
  With ActiveSheet  'Ou Worksheets("MaFeuille")
    ' Plage à copier
    Set r = .Range("C3:G3")
    ' Plage continue contenant la dernière cellule non vide en partant de C3
    Set c = Intersect(.Range("C3").CurrentRegion, .Columns("C"))
    ' Dernière cellule non vide en partant de C3
    Set c = .Cells(c.Row + c.Rows.Count - 1, "C")
  End With
  ' Copier les valeurs
  c.Resize(r.Rows.Count, r.Columns.Count).Value = r.Value
End Sub



Cordialement
Patrice
Commenter la réponse de Patrice33740

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.