Copier à la ligne suivante à partir de la ligne 1

Le
Apitos
Bonsoir,

Pour copier des données depuis la colonne A vers la colonne F, j'ai
fais ce code :

'
For each Cel in Range("A1:A10")

Range("A"&Cel.Row) Copy Range("F"&Cel.Row).Offset(1,0)

Next Cel
'

Mais la premiere lignes est toujours laissée vide !!

Comment pourrais-je forcer le copiage depuis la cellule F1 ?

Merci.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Philippe.R
Le #17237421
Bonjour,
Dans ton code, tu imposes ce décalage d'une ligne par .Offset(1,0)
placé à la fin de l'instruction ; retire cette partie et tout devrait
rentrer dans l'ordre.
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Apitos" news:
Bonsoir,

Pour copier des données depuis la colonne A vers la colonne F, j'ai
fais ce code :

'---------
For each Cel in Range("A1:A10")

Range("A"&Cel.Row) Copy Range("F"&Cel.Row).Offset(1,0)

Next Cel
'------------

Mais la premiere lignes est toujours laissée vide !!

Comment pourrais-je forcer le copiage depuis la cellule F1 ?

Merci.
Apitos
Le #17241581
Bonjour Philippe,

Pour le premier code ça marche puisqu'il y'a avancement dans la ligne
des cellule parcourues.

Mais pour ce code, je n'ai que la derniere d'afficher :
'-------
Sub Sauvegarde()
Application.ScreenUpdating = False
[T1:U20].Clear
[V1:V20].ClearContents
For Each C In Range([C1], [C65500].End(xlUp))
If C.Value = LCase("x") Then
Range("A" & C.Row, "B" & C.Row).Copy [T65000].End(xlUp)
'.Offset(1, 0)
Range("F" & C.Row).Copy [V65500].End(xlUp) '.Offset(1, 0)
End If
Next C
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
'-------

Chaque ligne est écrasée par sa suivante ...

Merci.
Jacky
Le #17242441
Bonjour,

En attendant le retour de Philippe de la sieste.
Je te propose deux solutions
1- La copie de A,B,F tel que dans les lignes respectives vers T,U,V (Avec
possibilité de Blanc)
'----------------
Sub Sauvegarde()
Application.ScreenUpdating = False
[T1:V65000].Clear
'[V1:V20].ClearContents
For Each C In Range([C1], [C65000].End(xlUp))
If C.Value = LCase("x") Then
Range("A" & C.Row, "B" & C.Row).Copy Range("T" & C.Row)
Range("F" & C.Row).Copy Range("V" & C.Row) ' [V65500].End(xlUp)
'.Offset(1, 0)
End If
Next C
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
'--------------------
2- La copie de A,B,F dans les lignes respectives vers T,U,V (Sans Blanc a
partir de la ligne 2)
'---------------
Sub Sauvegarde2()
Application.ScreenUpdating = False
[T1:V65000].Clear
' [V1:V20].ClearContents
[t1] = "Copie de A": [u1] = "Copie de B": [v1] = "Copie de F"
For Each C In Range([C1], [C65000].End(xlUp))
If C.Value = LCase("x") Then
x = [t65000].End(xlUp).Row + 1
Range("A" & C.Row, "B" & C.Row).Copy Range("T" & x)
x = [v65000].End(xlUp).Row + 1
Range("F" & C.Row).Copy Range("V" & x)
End If
Next C
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
'-----------------
ps: en mettant "If LCase(C.Value) = LCase("x") Then" Le contrôle se fait
indifféremment minuscule / majuscule
Pour mon info personnel. J'ai pas saisie intérêt de cette copie, tu peux
expliquer ?
--
Salutations
JJ


"Apitos"
Bonjour Philippe,

Pour le premier code ça marche puisqu'il y'a avancement dans la ligne
des cellule parcourues.

Mais pour ce code, je n'ai que la derniere d'afficher :
'-------
Sub Sauvegarde()
Application.ScreenUpdating = False
[T1:U20].Clear
[V1:V20].ClearContents
For Each C In Range([C1], [C65500].End(xlUp))
If C.Value = LCase("x") Then
Range("A" & C.Row, "B" & C.Row).Copy [T65000].End(xlUp)
'.Offset(1, 0)
Range("F" & C.Row).Copy [V65500].End(xlUp) '.Offset(1, 0)
End If
Next C
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
'-------

Chaque ligne est écrasée par sa suivante ...

Merci.
Jacky
Le #17242601
Re..
Même que cette ligne est sans intérêt et peut être supprimée
x = [v65000].End(xlUp).Row + 1

--
Salutations
JJ


"Jacky" ec4g5J$
Bonjour,

En attendant le retour de Philippe de la sieste.
Je te propose deux solutions
1- La copie de A,B,F tel que dans les lignes respectives vers T,U,V (Avec
possibilité de Blanc)
'----------------
Sub Sauvegarde()
Application.ScreenUpdating = False
[T1:V65000].Clear
'[V1:V20].ClearContents
For Each C In Range([C1], [C65000].End(xlUp))
If C.Value = LCase("x") Then
Range("A" & C.Row, "B" & C.Row).Copy Range("T" & C.Row)
Range("F" & C.Row).Copy Range("V" & C.Row) ' [V65500].End(xlUp)
'.Offset(1, 0)
End If
Next C
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
'--------------------
2- La copie de A,B,F dans les lignes respectives vers T,U,V (Sans Blanc a
partir de la ligne 2)
'---------------
Sub Sauvegarde2()
Application.ScreenUpdating = False
[T1:V65000].Clear
' [V1:V20].ClearContents
[t1] = "Copie de A": [u1] = "Copie de B": [v1] = "Copie de F"
For Each C In Range([C1], [C65000].End(xlUp))
If C.Value = LCase("x") Then
x = [t65000].End(xlUp).Row + 1
Range("A" & C.Row, "B" & C.Row).Copy Range("T" & x)
x = [v65000].End(xlUp).Row + 1
Range("F" & C.Row).Copy Range("V" & x)
End If
Next C
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
'-----------------
ps: en mettant "If LCase(C.Value) = LCase("x") Then" Le contrôle se fait
indifféremment minuscule / majuscule
Pour mon info personnel. J'ai pas saisie intérêt de cette copie, tu peux
expliquer ?
--
Salutations
JJ


"Apitos"
Bonjour Philippe,

Pour le premier code ça marche puisqu'il y'a avancement dans la ligne
des cellule parcourues.

Mais pour ce code, je n'ai que la derniere d'afficher :
'-------
Sub Sauvegarde()
Application.ScreenUpdating = False
[T1:U20].Clear
[V1:V20].ClearContents
For Each C In Range([C1], [C65500].End(xlUp))
If C.Value = LCase("x") Then
Range("A" & C.Row, "B" & C.Row).Copy [T65000].End(xlUp)
'.Offset(1, 0)
Range("F" & C.Row).Copy [V65500].End(xlUp) '.Offset(1, 0)
End If
Next C
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
'-------

Chaque ligne est écrasée par sa suivante ...

Merci.



Apitos
Le #17243621
Bonsoir Jacky,

Pour la première proposition, le résultat contient des cellules vides.

La deuxième, si on enlève les en-têtes, ça donnera le même résu ltat :
la première ligne est toujours vide !

Pas grand chose pour l'intérêt de cette copie, juste que après
effacement des colonnes A à C pour coller un résultat d'un filtre
élabore, je fait une comparaison entre les données en T:U avec celles
en A:B.

Alors je voulais éviter de comparer un vide en [T1:U1] à un autre dans
[A1:B1], puisque mes données du filtre sont collées à partir de [A5].

Merci Jacky.
Jacky
Le #17243781
Re..
Pour ne pas avoir la première ligne vide et sans en-têtes,
ceci
'--------------
Sub Sauvegarde2()
Application.ScreenUpdating = False
[T1:V65000].Clear
' [V1:V20].ClearContents
x = 1
For Each C In Range([C1], [C65000].End(xlUp))
If C.Value = LCase("x") Then
Range("A" & C.Row, "B" & C.Row).Copy Range("T" & x)
Range("F" & C.Row).Copy Range("V" & x)
x = x + 1
End If
Next C
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
'-------------------


--
Salutations
JJ


"Apitos"
Bonsoir Jacky,

Pour la première proposition, le résultat contient des cellules vides.

La deuxième, si on enlève les en-têtes, ça donnera le même résultat :
la première ligne est toujours vide !

Pas grand chose pour l'intérêt de cette copie, juste que après
effacement des colonnes A à C pour coller un résultat d'un filtre
élabore, je fait une comparaison entre les données en T:U avec celles
en A:B.

Alors je voulais éviter de comparer un vide en [T1:U1] à un autre dans
[A1:B1], puisque mes données du filtre sont collées à partir de [A5].

Merci Jacky.
Apitos
Le #17244401
Salut,

Ca marche maintenant.

Merci Jacky.
Apitos
Le #17244481
Merci Jacky.

Ca marche maintenant.
Philippe.R
Le #17245531
Bonsoir,
Ma sieste étant terminée, je reviens pour me féliciter du résultat !
;o))))
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Jacky" news:%
Re..
Pour ne pas avoir la première ligne vide et sans en-têtes,
ceci
'--------------
Sub Sauvegarde2()
Application.ScreenUpdating = False
[T1:V65000].Clear
' [V1:V20].ClearContents
x = 1
For Each C In Range([C1], [C65000].End(xlUp))
If C.Value = LCase("x") Then
Range("A" & C.Row, "B" & C.Row).Copy Range("T" & x)
Range("F" & C.Row).Copy Range("V" & x)
x = x + 1
End If
Next C
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
'-------------------


--
Salutations
JJ


"Apitos"
Bonsoir Jacky,

Pour la première proposition, le résultat contient des cellules vides.

La deuxième, si on enlève les en-têtes, ça donnera le même résultat :
la première ligne est toujours vide !

Pas grand chose pour l'intérêt de cette copie, juste que après
effacement des colonnes A à C pour coller un résultat d'un filtre
élabore, je fait une comparaison entre les données en T:U avec celles
en A:B.

Alors je voulais éviter de comparer un vide en [T1:U1] à un autre dans
[A1:B1], puisque mes données du filtre sont collées à partir de [A5].

Merci Jacky.



Jacky
Le #17245921
C'est avec plaisir...
Félicitation, record de durée de sieste battu
;o)))

--
Salutations
JJ


"Philippe.R" %
Bonsoir,
Ma sieste étant terminée, je reviens pour me féliciter du résultat !
;o))))
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Jacky" news:%
Re..




Publicité
Poster une réponse
Anonyme