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

Excel - "Déplacement" sans nommer une cellule

2 réponses
Avatar
Congelator
Salut à tous

Mon problème est le suivant :
Dans un fichier Excel qui va être rempli tout au long de l'année, j'ai
besoin de trouver la dernière ligne écrite pour créer une facture sur une
autre feuille du même fichier. A partir de là, si cette ligne contient un X
dans la colonne J, je veux me déplacer de 2 cellules vers la droite (L),
copier son contenu et le coller dans l'autre onglet (DCI- D19), revenir au
fichier original (Liste) et me déplacer
d'une cellule vers la droite (M) - copier - coller (DCI- D16) - retour -
un nouveau déplacement vers la droite (N) - copier - coller (DCI- D10).
Dans le code que j'ai créé, la cellule est toujours définie (L15 - M15 -
N15) alors que ce ne sera pas toujours la ligne 15... d'où mon SOS !!

Si quelqu'un à une solution, ça m'intéresse. Voilà le code que j'ai créé :

Sub transfert()
'sélection de la colonne J
Columns("J:J").Select
'recherche de la première cellule vide dans la colonne J
Range("J2").Activate
Selection.Find(What:="", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:=False).Activate
'séletion de la cellule - NE DEVRAIT PAS CONTENIR DE REFERENCE MAIS UN
MOUVEMENT (move right 2 cellules)
Range("L5").Select
Selection.Copy
Sheets("DCI").Select
Range("D19:I19").Select
ActiveSheet.Paste
Sheets("Liste").Select
'séletion de la cellule - NE DEVRAIT PAS CONTENIR DE REFERENCE MAIS UN
MOUVEMENT (move right 1 cellule)
Range("M5").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("DCI").Select
Range("D16:I16").Select
ActiveSheet.Paste
Sheets("Liste").Select
'séletion de la cellule - NE DEVRAIT PAS CONTENIR DE REFERENCE MAIS UN
MOUVEMENT (move right 1 cellule)
Range("N5").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("DCI").Select
Range("D10:I10").Select
ActiveSheet.Paste
End Sub

Merci d'avance pour le coup de main.

PS : j'ai également mis cette question sous "VBA"

--
Céd / Lausanne

2 réponses

Avatar
Elliac
Bonjour,

Sub transfert()

Range("j50000").End(XlUp).Offset(1).Select
ActiveCell.Offset(,1).Copy Sheets("DCI").Range("D19:I19")
ActiveCell.Offset(,2).Copy Sheets("DCI").Range("D16:I16")
ActiveCell.Offset(,3).Copy Sheets("DCI").Range("D10:I10")
End Sub

Camille

"Congelator" wrote:

Salut à tous

Mon problème est le suivant :
Dans un fichier Excel qui va être rempli tout au long de l'année, j'ai
besoin de trouver la dernière ligne écrite pour créer une facture sur une
autre feuille du même fichier. A partir de là, si cette ligne contient un X
dans la colonne J, je veux me déplacer de 2 cellules vers la droite (L),
copier son contenu et le coller dans l'autre onglet (DCI- D19), revenir au
fichier original (Liste) et me déplacer
d'une cellule vers la droite (M) - copier - coller (DCI- D16) - retour -
un nouveau déplacement vers la droite (N) - copier - coller (DCI- D10).
Dans le code que j'ai créé, la cellule est toujours définie (L15 - M15 -
N15) alors que ce ne sera pas toujours la ligne 15... d'où mon SOS !!

Si quelqu'un à une solution, ça m'intéresse. Voilà le code que j'ai créé :

Sub transfert()
'sélection de la colonne J
Columns("J:J").Select
'recherche de la première cellule vide dans la colonne J
Range("J2").Activate
Selection.Find(What:="", After:¬tiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse).Activate
'séletion de la cellule - NE DEVRAIT PAS CONTENIR DE REFERENCE MAIS UN
MOUVEMENT (move right 2 cellules)
Range("L5").Select
Selection.Copy
Sheets("DCI").Select
Range("D19:I19").Select
ActiveSheet.Paste
Sheets("Liste").Select
'séletion de la cellule - NE DEVRAIT PAS CONTENIR DE REFERENCE MAIS UN
MOUVEMENT (move right 1 cellule)
Range("M5").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("DCI").Select
Range("D16:I16").Select
ActiveSheet.Paste
Sheets("Liste").Select
'séletion de la cellule - NE DEVRAIT PAS CONTENIR DE REFERENCE MAIS UN
MOUVEMENT (move right 1 cellule)
Range("N5").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("DCI").Select
Range("D10:I10").Select
ActiveSheet.Paste
End Sub

Merci d'avance pour le coup de main.

PS : j'ai également mis cette question sous "VBA"

--
Céd / Lausanne


Avatar
Congelator
Salut Camille,

Un grand MERCI !! ça marche !! Ce qui me tue, ce de voir qu'on peut le faire
en 4 ligne et ça fonctionne alors que j'en fais des livres entiers et que ça
plante... :-))

Il y a ceux qui savent et il y a les autres dont je fais partie :-((

Encore merci
--
Céd / Lausanne



Bonjour,

Sub transfert()

Range("j50000").End(XlUp).Offset(1).Select
ActiveCell.Offset(,1).Copy Sheets("DCI").Range("D19:I19")
ActiveCell.Offset(,2).Copy Sheets("DCI").Range("D16:I16")
ActiveCell.Offset(,3).Copy Sheets("DCI").Range("D10:I10")
End Sub

Camille

"Congelator" wrote:

Salut à tous

Mon problème est le suivant :
Dans un fichier Excel qui va être rempli tout au long de l'année, j'ai
besoin de trouver la dernière ligne écrite pour créer une facture sur une
autre feuille du même fichier. A partir de là, si cette ligne contient un X
dans la colonne J, je veux me déplacer de 2 cellules vers la droite (L),
copier son contenu et le coller dans l'autre onglet (DCI- D19), revenir au
fichier original (Liste) et me déplacer
d'une cellule vers la droite (M) - copier - coller (DCI- D16) - retour -
un nouveau déplacement vers la droite (N) - copier - coller (DCI- D10).
Dans le code que j'ai créé, la cellule est toujours définie (L15 - M15 -
N15) alors que ce ne sera pas toujours la ligne 15... d'où mon SOS !!

Si quelqu'un à une solution, ça m'intéresse. Voilà le code que j'ai créé :

Sub transfert()
'sélection de la colonne J
Columns("J:J").Select
'recherche de la première cellule vide dans la colonne J
Range("J2").Activate
Selection.Find(What:="", After:¬tiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse).Activate
'séletion de la cellule - NE DEVRAIT PAS CONTENIR DE REFERENCE MAIS UN
MOUVEMENT (move right 2 cellules)
Range("L5").Select
Selection.Copy
Sheets("DCI").Select
Range("D19:I19").Select
ActiveSheet.Paste
Sheets("Liste").Select
'séletion de la cellule - NE DEVRAIT PAS CONTENIR DE REFERENCE MAIS UN
MOUVEMENT (move right 1 cellule)
Range("M5").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("DCI").Select
Range("D16:I16").Select
ActiveSheet.Paste
Sheets("Liste").Select
'séletion de la cellule - NE DEVRAIT PAS CONTENIR DE REFERENCE MAIS UN
MOUVEMENT (move right 1 cellule)
Range("N5").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("DCI").Select
Range("D10:I10").Select
ActiveSheet.Paste
End Sub

Merci d'avance pour le coup de main.

PS : j'ai également mis cette question sous "VBA"

--
Céd / Lausanne