macro pour copier des elements dans un tableau

  • Initiateur de la discussion fresquie
  • Date de début
F

fresquie

Guest
Bjr
J'y prends goût...
Donc, je voudrais copier des enregistrements situés dans la feuile A dans la liste de données située feuille B.
Avec mes petites mains, j'ai créé une macro (enregistrée) qui ajoute une ligne en haut des enregistrements de la feuille B et y colle mon enregistrement de la feuille A. Mais cela pose problème (décalage vers le bas) si cette liste de données est liée par collage avec liaison à une feuille C qui regroupe plusieurs tableux différents par collages avec liaison.
Il me faudrait une macro qui colle mon enregistrement de la feuille A à la suite de ceux de la feuille B...tout simplement!!!
Mais ce n'est pas si simple n'est-ce-pas? Pour moi, c'est même une horreur.
Au secours donc.
 
Z

Zon

Guest
Salut,

Moi perso je suis contre le copier coller , mais pour récupérer les valeurs:

with Tafeuil2
L=.[A65536].end(xlup).row+1 'on récupère la 1 ere ligne vide sous ton tableau

on peut écrire alors :

.range("A" & L,"C" & L)=range("A13:C13").value


end with

Sinon faut être plus explicite..
 
F

fresquie

Guest
Je suis minable dans la gestion du forum (je réponds ici après avoir posé le message comme un nouveau...)

Donc, j'ai un tableau (liste de données) sur une feuille F1.
Sur une feuille F2, j'ai une autre liste de données, avec les mêmes champs.
Je veux automatiser la copie de cellules d'une ligne de mon tableau situé feuille F1 vers la dernière ligne (ou disons la première ligne libre) du tableau de la feuille F2. Je sais sélectionner (tri élaboré avec copie vers un autre endroit) les cellules qui m'intéressent mais comment forcer la copie à la fin d'un tableau ? Autrement dit, si le tableau comporte n lignes, à la ligne n+1 ?
 
Z

Zon

Guest
Re,

Je t'avais donné une piste avec end, mais comme je n'utilise pas les filtres élaborés (que je trouve barbant en VBA), postes un fichier exemple de tes données afin de faire un bout de code..


A+++
 
F

fresquie

Guest
Ok et merci
Je rappelle le contexte :
sur banque.xls : journal de banque; et je veux copier certaines portions de lignes pour les ventiler dans grandlivre04.xls.
 

Pièces jointes

  • exemple.zip
    31.9 KB · Affichages: 38
  • exemple.zip
    31.9 KB · Affichages: 47
  • exemple.zip
    31.9 KB · Affichages: 50
Z

Zon

Guest
Salut,


Si j'ai bien compris au lieu d'insérer une ligne tu veux le mettre en dernier par exemple pour te mettre sur la voie en évitant tout ces select

Modifies ta procédure Filtre

Sub Filtre()

With [A1]
.Range("A1:I26").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=.Offset(31, 9).Range("A1:A2"), CopyToRange:= _
.Offset(33, 9).Range("A1:D1"), Unique:=False
End With
End Sub

et pour la proc EDF à tester c'est fait à la va vite sans test

Sub EDF()
Dim Plage As Range


filtre 'on lance la proc filtre
set Plage = Range("J35:L35") 'on définit la variable Plage

with workbooks("Grand livre04.xls")
with .sheets("EDF")
.[B65536].End(xlUp)(2).Resize(1, Plage.columns.count) = Plage.Value
end with
end with
with .Sheets("Banque")
.Range("B65536").end(xlup)(2).resize(Plage.rows.count, Plage.columns.count) = Plage.value
.[E65536].end(xlup)(2)=.[D65536].end(xlup)(1).value
.[D65536].end(xlup)(1).clearcontents

end with

A+++
 

Discussions similaires

Statistiques des forums

Discussions
312 492
Messages
2 088 924
Membres
103 983
dernier inscrit
AlbertCouillard