copier/coller plage cellule excel sur autre feuille par VBA

thanatos

XLDnaute Nouveau
salut à tous,

Je n'ai jamais perdu autant de temps pour un morceau de code, un très grand merci à tout ceux qui pourront m'aider...

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)

Un des code qui ne fonctionne pas que j'ai essayé:

Sheets("Feuil2").Select
Range(Cells(ligne, 4), Cells(ligne, dernval)).Select
Selection.Copy
Sheets("Feuil3").Select
Range("B36").Select
ActiveSheet.Paste

Voila merci
 

Caillou

XLDnaute Impliqué
Re : copier/coller plage cellule excel sur autre feuille par VBA

Bonjour,

Je viens de tester, pour moi, ce code fonctionne parfaitement.
Peut-être un problème de déclaration de variable ou de type de données ?
D'ailleurs, qu'est-ce-qui ne fonctionne pas ?

Caillou
 

Pierrot93

XLDnaute Barbatruc
Re : copier/coller plage cellule excel sur autre feuille par VBA

Bonjour Thanatos, Caillou

essaye comme ci dessous :

Code:
Dim ligne As Integer, dernval As Byte
ligne = 4
dernval = 7
With Sheets("Feuil2")
    .Range(.Cells(ligne, 4), .Cells(ligne, dernval)).Copy _
    Sheets("Feuil3").Range("B36")
End With

bonne fin d'après midi
@+
 

Trashboy666

XLDnaute Nouveau
Re : copier/coller plage cellule excel sur autre feuille par VBA

Bonjour à tous,

Ce post a parfaitement répondu à mon besoins à 90%, cependant, je me permet de le déterrer pour poser une question le concernant, sous Excel 2003.

je copie un plage de cellule et je la colle dans une autre feuille ça c'est ok, seulement j'ai combiné cette fonction avec un moyen de recherche dans une liste, et je souhaite coller les résultats à la suite dans une nouvelle feuille.

Seulement je n'y arrive pas en modifiant le Range de la destination de la copie. Comment faire?

Voici mon code:
Code:
Private Sub FiltreEtColle_Click()

Dim ligne As Integer, dernval As Integer, lignecollage As Integer, x As Integer, i As Integer

For i = 1 To 30000 Step 1

ligne = i - 2
dernval = 9
lignecollage = i


If (Cells(i, 4).Value = "differ") Then
With Sheets("log")
    Range(.Cells(ligne, 1), .Cells(i, dernval)).Copy _
    Sheets("filtration").Range("A1")
End With
End If

Next i

Feuil2.Activate

End Sub

La seule chose que j'ai réussi à faire, c'est coller les ligne recherchée dans la feuille "filtration", mais pas à la suite, juste à la même position qu'elle avait dans la feuille "log".

Ha oui autre problème, je dépasse le nombre de 32637 lignes, et j'ai un dépassement de capacité pour i. Comment faut-il faire pour aller jusqu'à au moins 45000 lignes?

Merci à vous tous et désolé de dépoussiérer ce sujet, je n'ai vraiment pas trouvé de solution à mon problème :-(
 

TempusFugit

XLDnaute Impliqué
Re : copier/coller plage cellule excel sur autre feuille par VBA

Bonjour

Pour éviter le dépassement, préférez Dim i As Long (faire de même avec les autres variables déclarées As Integer)

Pour coller à la suite, essayez
Sheets("filtration").Range("A65536").End(xlUp)(2)
 

TempusFugit

XLDnaute Impliqué
Re : copier/coller plage cellule excel sur autre feuille par VBA

Avec End(xlUp) on part de la dernière cellule (donc ligne 65536) et on remonte vers le haut, et avec le (2)
on trouve la première cellule vide après la derniére non vide.

Des informations plus détaillées en consultant l'aide en ligne dans VBE.
(Outils/Macro/Microsoft Visual Basic Editor puis appuyez sur la touche F1)
 

bm44000

XLDnaute Nouveau
Re : copier/coller plage cellule excel sur autre feuille par VBA

Bonjour,

Avis aux experts de VBA !
J'ai deux fichiers: Fichier A et Fichier B.
J'ai 10 contenus de cellule du fichier A que je veux envoyer (copier/coller) dans le fichier B.
Par exemple en cellule B3 du fichier A j'ai le nom d'un client que je veux copier coller dans le fichier B dans la colonne intitulée "Nom du client" dans une cellule vide (à la suite d'une série de cellules remplies). Je veux faire cela pour 10 autres cellules. Le fichier B étant fermé au début de l'opération et en mode "partagé".

Pouvez vous m'indiquer la démarche à suivre, les fonctions à utiliser ? Et si possible le code associé !!

Merci d'avance,

Cordialement,
bm44000
 

guigui971

XLDnaute Junior
Re : copier/coller plage cellule excel sur autre feuille par VBA

Bonjour,

Je débute en VBA et j'ai un besoin qui me semble proche du tiens :

-Une feuille 1 dans laquelle on vient faire des saisies qui abouttissent à des résultats dans cette même feuille.

-Une fois que l'on a ces résultats, on voudrait en garder une trace avec une macro qui recopie les résultats dans une feuille 2 (qui présente une synthèse).

-Ensuite, quand on refait des calculs dans feuille 1, la macro met les nouveaux résultats en feuille 2 dans une colonne juste en face des résultats retenus précédemment.

-De temps en temps, on peut vouloir effacer le contenu d'une colonne en feuille 2. A ce moment, la macro doit voir qu'une nouvelle colonne s'est liberée et pourra y mettre de nouveaux resultats d'un nouveau calcul en feuille 1.

As tu des idée?
Merci
 

Discussions similaires

Statistiques des forums

Discussions
312 095
Messages
2 085 250
Membres
102 837
dernier inscrit
CRETE