Copier/coller plage cellule Excel sur autre feuille par VBA

Salut à tous,

Débutant en VBA, j'ai fait de longues et infructueuses recherches sur les forums.

voila ma question:

Je veux copier une plage (qui peut varier) sur la feuil2 et la coller sur la feuil3

Voila en gros comme je pensais le faire

Dim ligne As Double

Dim colonne As Double

Dim dernval As Double 'numéro de colonne

ligne = ActiveCell.Row 'ligne selectionnee

colonne = ActiveCell.Column 'colonne selectionnee

' ----et la je sèche----

Sheets(Feuil2).Activate 'activer feuil2

Range(Cells(ligne, 4), Cells(ligne, dernval)).Copy 'copier la plage depuis la feuil2

Sheets(Feuil3).Activate 'activer feuil3

Range("B2").PasteSpecial Paste:=xlPasteValues 'coller en b2

c du code que j'ai pris sur différent forum et que j'ai mis ensemble, et le moins qu'on puisse dire c'est que ce n'est pas un succès

voila, c tout ce que j'aimerais faire. Merci a tous ceux qui essayeront de m'aider je deviens vraiment taré avec ce machin.

Bonsoir et bienvenu,

C'est loin d'être clair tout ça. Essaye de joindre ton fichier et demande concrètement ce que tu veux comme résultat. Cela ne doit pas être très difficile de ce que tu demandes à faire. A toi de jouer.

merci de t'intéresser à mon problème

Je ne peux pas joindre le fichier car il contient des données personnel de plusieurs personnes...

ben en fait j'aimerais connaitre le code pour pouvoir, par VBA, copier des données d'une plage excel non fixe (que j'aimerais définir avec des variables pour les n°de lignes et de colonne) sur la feuillle2 et copier ces cases sur la feuille3 à un endroit précis. Le tout dans le même classeur.

voila

merci

Bonsoir,

même sans ton fichier exemple, que tu aurais pu joindre, en modifiant les noms, nums de tél, et adresses mail, je pense que tu n'as pas donné une valeur à ta variable "dernval" (que tu définis comme dernière valeur, mais que tu ne calcules pas.....)

De plus, les Activate, tout comme les Select, sont rarement nécessaires....

Re, Salut félix,

C'est du travail sans filet (que j'apprécie moyennement). Essaye ceci, mais sans conviction, d'autant plus que je ne suis pas un spécialist VBA :

Sub copie()
  Sheets("Feuil2").Select
  ActiveSheet.UsedRange.Copy
  Sheets("Feuil3").Range("B2").PasteSpecial Paste:=xlPasteValues
End Sub

Bonsoir, Raja

  • C'est du travail sans filet (que j'apprécie moyennement)

Tu as vu le calcul de "dernval", quelque part?

Amicalement

félix,

Je ne comprends pas ta question.

voila plus de précision pour mon problème

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim ligne As Double

Dim colonne As Double

Dim dernval As Double

dernval = 4

ligne = ActiveCell.Row 'ca ca marche

colonne = ActiveCell.Column 'ca ca marche

loop1: 'ca, ca mrache

If Feuil2.Cells(2, dernval).Value > 0 Then 'test derniere colonne pleine, valeur en dernval

dernval = dernval + 1

GoTo loop1

Else

End If

'voila ce que j'aimerais faire manent, qui ne marche donc pas

Sheets(Feuil2).Activate'

Range(Cells(ligne, 4), Cells(ligne, dernval)).Copy 'copier la plage comprise entre les cellules Cells(ligne, 4) et Cells(ligne, dernval) de la feuille 2

'Sheets(Feuil3).Activate

'Range("B2").PasteSpecial Paste:=xlPasteValues 'les coller horizontalement depuis la case B2 de la feuille3

en gros ce que je veux savoir, c'est le code pour copier/coller une plage de cellule d'une feuille à une autre, en définissant la plage avec des variables dans le genre Cells(ligne, 4), Cells(ligne, dernval)

(ici, si ligne=4 et dernval=7 la plage serait alors D4:G4)

Voila merci beaucoup

Bonsoir,

en gros ce que je veux savoir, c'est le code pour copier/coller une plage de cellule d'une feuille à une autre, en définissant la plage avec des variables dans le genre Cells(ligne, 4), Cells(ligne, dernval)

On avait comprit ce que tu veux faire avec ce code. Mais ce que Felix te demande, c'est la valeur de "Dernval". Tu parles de 7 mais peut-elle varier.

J'imagine que si ton tableau grandit vers la droite, "dernval" peut être plus grand que 7.

Sans fichier, ce n'est pas facile de te donner une réponse ou un code qui fonctionnera à chaque changement.

Amicalement

Dan

salut à tous

au sujet de dernval, elle peut évidement varier. C'est pour cela que j'ai mis une variable.

Qq un m a apporté la solution sur un autre forum. je la donne pour ceux que ça intéresse:

With Sheets("Feuil2")

.Range(.Cells(ligne, 4), .Cells(ligne, dernval)).Copy _

Sheets("Feuil3").Range("B35")

End With

Je suis désolé si ma question n'était pas très clair, en tout cas ça marche et suis ma foi bien content

Merci à tous d'avoir essayé

Bonjour,

Je déterre ce sujet qui répondait parfaitement à mes attentes...j'ai adapté le code de thanaos :

With Sheets("Feuil2")
.Range(.Cells(ligne, 4), .Cells(ligne, dernval)).Copy _
Sheets("Feuil3").Range("B35")
End With

Par celui ci :

 With Sheets("Liste")
.Range(.Cells(ligne, 1), .Cells(ligne, 2)).Copy _
Sheets("Statistiques").Range(.Cells(ligne, 1), .Cells(ligne, 2))
End With

L'erreur "Run-time error '1004': Application-defined or object-defined error",

J'ai vérifié le nom des feuilles mais j'obtiens toujours l'erreur...auriez vous une idée ?

Merci

Rechercher des sujets similaires à "copier coller plage feuille vba"