Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Copier à la ligne suivante à partir de la ligne 1

10 réponses
Avatar
Apitos
Bonsoir,

Pour copier des donn=E9es 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=E9e vide !!

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

Merci.

10 réponses

Avatar
Philippe.R
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" a écrit dans le message de
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.
Avatar
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.
Avatar
Jacky
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" a écrit dans le message de news:

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.
Avatar
Jacky
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" a écrit dans le message de news:
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" a écrit dans le message de news:

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.



Avatar
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é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.
Avatar
Jacky
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" a écrit dans le message de news:

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.
Avatar
Apitos
Salut,

Ca marche maintenant.

Merci Jacky.
Avatar
Apitos
Merci Jacky.

Ca marche maintenant.
Avatar
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" a écrit dans le message de
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" a écrit dans le message de news:

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.



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

--
Salutations
JJ


"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de news:
%
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" a écrit dans le message de
news:%
Re..