XL 2010 copier et coller vers autre page et à la suite

Hafi.alaoui

XLDnaute Junior
Bonjour
merci de m'aider de trouver un code
pour copier des cellules feuil1:("C8:E19") vers feuil2, et incrémenter la suite feuil1:("C8:E19")vers feuil2 après un clearcontent du feuil1
merci
 

Pièces jointes

  • tst1.xlsx
    11.4 KB · Affichages: 3

Calvus

XLDnaute Barbatruc
Bonjour,

Voici, si j'ai bien tout compris, car il est assez difficile de faire moins clair comme demande...
VB:
Option Explicit

Sub copie()
Dim f As Worksheet, f1 As Worksheet, i As Byte, j As Byte

Set f = Sheets("Feuil1")
Set f1 = Sheets("Feuil2")

j = f1.Cells(Rows.Count, 3).End(xlUp).Offset(1, 0).Row
For i = 8 To f.Cells(Rows.Count, 3).End(xlUp)
    If f.Cells(i, 3) <> "" Then
        f1.Cells(j, 2) = f.Cells(i, 2)
        f1.Cells(j, 3) = f.Cells(i, 3)
        f1.Cells(j, 4) = f.Cells(i, 4)
        f1.Cells(j, 5) = f.Cells(i, 5)
        j = j + 1
    End If
Next i
End Sub

A+
 

Pièces jointes

  • tst1.xlsm
    18.2 KB · Affichages: 9

yahya belbachir

XLDnaute Occasionnel
Bonjour,

Voici, si j'ai bien tout compris, car il est assez difficile de faire moins clair comme demande...
VB:
Option Explicit

Sub copie()
Dim f As Worksheet, f1 As Worksheet, i As Byte, j As Byte

Set f = Sheets("Feuil1")
Set f1 = Sheets("Feuil2")

j = f1.Cells(Rows.Count, 3).End(xlUp).Offset(1, 0).Row
For i = 8 To f.Cells(Rows.Count, 3).End(xlUp)
    If f.Cells(i, 3) <> "" Then
        f1.Cells(j, 2) = f.Cells(i, 2)
        f1.Cells(j, 3) = f.Cells(i, 3)
        f1.Cells(j, 4) = f.Cells(i, 4)
        f1.Cells(j, 5) = f.Cells(i, 5)
        j = j + 1
    End If
Next i
End Sub

A+
Bonjour
merci pour votre réponse
c'est juste ce que je veux.
bonne journée
Cdt
YAHYA
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil,

Calvus ;)
je me suis permis un petit lifting
VB:
Sub copie()
Dim f As Worksheet, f1 As Worksheet, i As Byte, j As Byte
Set f = Sheets("Feuil1")
Set f1 = Sheets("Feuil2")
j = f1.Cells(Rows.Count, 3).End(xlUp).Offset(1, 0).Row
For i = 8 To f.Cells(Rows.Count, 3).End(xlUp).Row
    If f.Cells(i, 3) <> "" Then
    f1.Cells(j, 2).Resize(, 4).Value = f.Cells(i, 2).Resize(, 4).Value
    j = j + 1
    End If
Next i
End Sub

Sinon on peut aussi voir du côté du filtre élaboré, peut-être ;)
 

Staple1600

XLDnaute Barbatruc
Re

Donc avec le filtre élaboré
VB:
Sub Macro1()
Dim critR As Range, DestR As Range
Set critR = Sheets("Feuil1").[K6:K7]: Set DestR = Sheets("Feuil2").[B2:E2]
Sheets("Feuil1").[B6:E18].AdvancedFilter xlFilterCopy, critR, DestR, False
End Sub
Pré-requis: défusionner la ligne d'entête (sur les deux feuilles)
 

Calvus

XLDnaute Barbatruc
Re,

J'oublie fréquemment l'utilisation de cet outil qui est fort sympathique en réalité.

Mais dans le cas de notre ami, je pense que cette solution ne va pas être utile dans le sens où il souhaite conserver les données précédentes me semble t'il.
Qu'en penses tu ?
 

Discussions similaires

Statistiques des forums

Discussions
314 450
Messages
2 109 719
Membres
110 551
dernier inscrit
Khyolyanna