VBA Copie Plage taille variable

Sylvie

XLDnaute Accro
Bonjour à tous, Bonjour Cher Forum

j'ai bien essayé d'adapter toutes les solutions déjà données à ce type de question mais je n'arrive à rien et j'ai donc besoin de votre aide.

Je souhaite copier une plage de taille variable : nbre de lignes variables, 3 colonnes. Pour le nombre de lignes la derniere ligne non vide dans la colonne A doit faire l'affaire
Je dois effectuer une copie valeur des colonnes A et B et une copie avec liaison de la colonne C. NB : une condition doit être ajoutée dans la sélection des lignes à copier : il faut que A soit <> de "005".

La plage ainsi copiée doit l'être plus bas sur la même feuille en colonne A sur la 2eme ligne figurant en dessous du mot " Récapitulatif". Je pense que la méthode Find est à utiliser mais je n'y parviens pas plus.

Je vous joins un fichier exemple dans lequel j'ai essayé un début de macro.

Par avance merci

Bon Dimanche
 

Pièces jointes

  • Macro copie.xls
    24 KB · Affichages: 168
  • Macro copie.xls
    24 KB · Affichages: 168
  • Macro copie.xls
    24 KB · Affichages: 181

Bebere

XLDnaute Barbatruc
Re : VBA Copie Plage taille variable

bonjour Sylvie
essaye ce code
Sub Plagecacopier()
Dim I As Long, L As Long
L = 0
Application.ScreenUpdating = False

Set cel = Cells.Find("récapitulatif")
If Not cel Is Nothing Then L = cel.Row + 2
If L > 0 Then
For I = 4 To Range("A3").End(xlDown).Row
If CStr(Cells(I, 1)) <> "005" Then
Range(Cells(I, 1), Cells(I, 2)).Copy
Cells(L, 1).PasteSpecial Paste:=xlPasteValues
Cells(I, 3).Copy
Cells(L, 3).Select
ActiveSheet.Paste Link:=True
L = L + 1
End If
Next I
End If

Application.ScreenUpdating = True
End Sub

à bientôt
 

Sylvie

XLDnaute Accro
Re : VBA Copie Plage taille variable

Bonjour Bebere

Un grand merci pour ton intervention : tout fonctionne parfaitement.

Peux tu cependant m'expliquer le sens de ces deux lignes ?
If L > 0 Then
For I = 4 To Range("A3").End(xlDown).Row

Je m'attendais plutôt à trouver une référence à Range("A4") :confused:

Sylvie
 

Bebere

XLDnaute Barbatruc
Re : VBA Copie Plage taille variable

Sylvie
l=Range("A3").End(xlDown).Row
cells(l,1) est la dernière cellule non vide
vide A4
lance le code(F8 pas à pas)
remet en A4,vide A4
lance le code(idem que plus haut)
tu auras la réponse
bonne soirée
 

Sylvie

XLDnaute Accro
Re : VBA Copie Plage taille variable

Bonsoir Bebere, Bonsoir Cher Forum

je t'avoue ne pas avoir compris ta dernière explication.

Heureusement tu as quant à toi bien compris les miennes puisque tout fonctionne comme je le souhaitais

Merci encore et bonne soirée

Sylvie
 

amiramaache

XLDnaute Nouveau
Re : VBA Copie Plage taille variable

Bonsoir !
je suis nouvelle ici :)
Je voudrais savoir si quelqu'un saurait m'aider à résoudre un petit problème..car je débute sur excel/VBA
je dois copier/coller 3 fichiers xml que j ouvre avec excel sous forme de classeurs ouverts en lecture...
et copier le contenu des 3 fichiers dans une feuille d'un autre classeur.
J4arrive à faire ça mais j'ai une erreur (la taille des donnees du presse papiers est differente de celle que j'ai selectionné ds mon code)j aimerais savoir s'il est possible de creer une variable qui stockerai le nombre de lignes copiees apres mon ..selection.copy
Merci d'avance
Amira M
 

Bebere

XLDnaute Barbatruc
Re : VBA Copie Plage taille variable

bonjour Sylvie,Amiramache
bienvenue
en pièce jointe un exemple complet
les 3 classeurs source doivent être ouverts
il faut adapter les noms des feuilles et les dimensions des plages de cellules
le fichier EssaiAmira.zip sera décompressé dans un dossier nommé EssaiAmira
 

Pièces jointes

  • EssaiAmira.zip
    26.4 KB · Affichages: 84

amiramaache

XLDnaute Nouveau
Re : VBA Copie Plage taille variable

merci infiniment bebere!!! je viens de trouver la solution à mon problème mais je vais quand même regarder ta solution. je suis confrontée à une autre difficulté maintenant :p je vais essayer de mon coté et si je ny parviens pas, je posterai le problème. j'ai pu charger sur mon classeur, tous les fichiers XML se trouvant ds un dossier automatiquement et là, je dois parcourir la feuille contenant tous ces fichiers et comparer avec le contenu d'une autre feuille du classeur et mettre les differences dans une autre :p je débute donc je ne vois pas encore comment faire ça mais je vais essayer! bonne soirée et merci encore une fois :)
 

Discussions similaires

Réponses
22
Affichages
746
Réponses
12
Affichages
293

Statistiques des forums

Discussions
312 108
Messages
2 085 363
Membres
102 874
dernier inscrit
Petro2611