Macro copier coller, décaler vers le bas si cellule pleine.

Le
Anatole
Bonjour,
J'aimerais savoir comment faire pour faire une macro qui va copier du
classeur 1 vers le classeur 2 qui sont tous les deux ouverts.

exemple on va copier du classeur donneur se qui se trouve en cellule H4 ,
H9 h H5 vers le classeur 2 qui le classeur receveur.

Mais le classeur receveur va stocker H4 en A4 si vide si non
prendre la cellule en dessous. c'est A5 ainsi de suite.
H9 en C9 si
vide si non prendre la cellule en dessous , c'est à dire C10 ainsi de suite.
H 5 en F5
si vide si non prendre la cellule en dessous F6 ainsi de suite.

info : sur ligne 400 dans le classeur receveur je fait le total
de la colonne A - C - F qui totalise de A4 à 399. idem pou C et F.

Merci à vous.

Anatole.
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
michdenis
Le #18718571
ça pourrait ressembler à quelque chose comme ceci :

'-----------------------------
Sub test()
Dim R As Long
Dim Sh As Worksheet
Dim Sh1 As Worksheet

'À renseigner selon ton application :Classeur & Feuille
Set Sh = Worksbook("NomClasseurSource.xls").Worksheets("Feuil1")
Set Sh1 = Worksbook("NomClasseurDestination.xls").Worksheets("Feuil1")

With Sh1
R = .Range("A65536").End(xlUp)(2).Row
Range("A" & R) = Sh.Range("H4")
R = .Range("C65536").End(xlUp)(2).Row
Range("C" & R) = Sh.Range("H9")
R = .Range("F65536").End(xlUp)().Row
Range("F" & R) = Sh.Range("H5")
End With

End Sub
'-----------------------------



"Anatole"
Bonjour,
J'aimerais savoir comment faire pour faire une macro qui va copier du
classeur 1 vers le classeur 2 qui sont tous les deux ouverts.

exemple on va copier du classeur donneur se qui se trouve en cellule H4 ,
H9 h H5 vers le classeur 2 qui le classeur receveur.

Mais le classeur receveur va stocker H4 en A4 si vide si non
prendre la cellule en dessous. c'est A5 ainsi de suite.
H9 en C9 si
vide si non prendre la cellule en dessous , c'est à dire C10 ainsi de suite.
H 5 en F5
si vide si non prendre la cellule en dessous F6 ainsi de suite.

info : sur ligne 400 dans le classeur receveur je fait le total
de la colonne A - C - F qui totalise de A4 à 399. idem pou C et F.

Merci à vous.

Anatole.
Jacky
Le #18719321
Bonjour Denis,

Ma curiosité m'a fait tester cette façon de faire, mais..

Y aurait pas un "s" qui se serait involontairement déplacé dans " Worksbook"
Sauf erreur un point devant les "Range("A" & R) = " a curieusement disparu
End(xlUp)(). ???
;o))))
--
Salutations
JJ


"michdenis"
ça pourrait ressembler à quelque chose comme ceci :

'-----------------------------
Sub test()
Dim R As Long
Dim Sh As Worksheet
Dim Sh1 As Worksheet

'À renseigner selon ton application :Classeur & Feuille
Set Sh =("NomClasseurSource.xls").Worksheets("Feuil1")
Set Sh1 = Worksbook("NomClasseurDestination.xls").Worksheets("Feuil1")

With Sh1
R = .Range("A65536").End(xlUp)(2).Row
Range("A" & R) = Sh.Range("H4")
R = .Range("C65536").End(xlUp)(2).Row
Range("C" & R) = Sh.Range("H9")
R = .Range("F65536").End(xlUp)().Row
Range("F" & R) = Sh.Range("H5")
End With

End Sub
'-----------------------------



"Anatole" discussion :

Bonjour,
J'aimerais savoir comment faire pour faire une macro qui va copier du
classeur 1 vers le classeur 2 qui sont tous les deux ouverts.

exemple on va copier du classeur donneur se qui se trouve en cellule H4
,
H9 h H5 vers le classeur 2 qui le classeur receveur.

Mais le classeur receveur va stocker H4 en A4 si vide si non
prendre la cellule en dessous. c'est A5 ainsi de suite.
H9 en C9
si
vide si non prendre la cellule en dessous , c'est à dire C10 ainsi de
suite.
H 5 en F5
si vide si non prendre la cellule en dessous F6 ainsi de suite.

info : sur ligne 400 dans le classeur receveur je fait le
total
de la colonne A - C - F qui totalise de A4 à 399. idem pou C et F.

Merci à vous.

Anatole.



michdenis
Le #18720291
Pour le S , tu as bien raison... c'est un code fait rapidement
sans test... ce n'était pas donner une façon possible de procéder.
Merci de l'avoir souligné, cela peut aider le demandeur.


"Jacky"
Bonjour Denis,

Ma curiosité m'a fait tester cette façon de faire, mais..

Y aurait pas un "s" qui se serait involontairement déplacé dans " Worksbook"
Sauf erreur un point devant les "Range("A" & R) = " a curieusement disparu
End(xlUp)(). ???
;o))))
--
Salutations
JJ


"michdenis"
ça pourrait ressembler à quelque chose comme ceci :

'-----------------------------
Sub test()
Dim R As Long
Dim Sh As Worksheet
Dim Sh1 As Worksheet

'À renseigner selon ton application :Classeur & Feuille
Set Sh =("NomClasseurSource.xls").Worksheets("Feuil1")
Set Sh1 = Worksbook("NomClasseurDestination.xls").Worksheets("Feuil1")

With Sh1
R = .Range("A65536").End(xlUp)(2).Row
Range("A" & R) = Sh.Range("H4")
R = .Range("C65536").End(xlUp)(2).Row
Range("C" & R) = Sh.Range("H9")
R = .Range("F65536").End(xlUp)().Row
Range("F" & R) = Sh.Range("H5")
End With

End Sub
'-----------------------------



"Anatole" discussion :

Bonjour,
J'aimerais savoir comment faire pour faire une macro qui va copier du
classeur 1 vers le classeur 2 qui sont tous les deux ouverts.

exemple on va copier du classeur donneur se qui se trouve en cellule H4
,
H9 h H5 vers le classeur 2 qui le classeur receveur.

Mais le classeur receveur va stocker H4 en A4 si vide si non
prendre la cellule en dessous. c'est A5 ainsi de suite.
H9 en C9
si
vide si non prendre la cellule en dessous , c'est à dire C10 ainsi de
suite.
H 5 en F5
si vide si non prendre la cellule en dessous F6 ainsi de suite.

info : sur ligne 400 dans le classeur receveur je fait le
total
de la colonne A - C - F qui totalise de A4 à 399. idem pou C et F.

Merci à vous.

Anatole.



michdenis
Le #18721501
Sub test()
Dim R As Long
Dim Sh As Worksheet
Dim Sh1 As Worksheet

'Feuille source
Set Sh = ThisWorkbook.Worksheets("Feuil1")
'Feuille de destination
Set Sh1 = ThisWorkbook.Worksheets("Feuil2")

With Sh1
R = .Range("A65536").End(xlUp)(2).Row
Range("A" & R) = Sh.Range("H4")
R = .Range("C65536").End(xlUp)(2).Row
Range("C" & R) = Sh.Range("H9")
R = .Range("F65536").End(xlUp)().Row
Range("F" & R) = Sh.Range("H5")
End With
End Sub


"Anatole"
Bonsoir,
Merci à Michdenis et JJ, j'ai réussi à adapter à feuille, cà fonctionne.
Juste une autre précion, si c'était à copier dans le même classeur mais de
feuille 1 a feuille 2 , qu'est ce qui faut changer dans les premières
ligne de la macro.
Merci par Anticipation et bonne soirée
Anatole.
"michdenis"
ça pourrait ressembler à quelque chose comme ceci :

'-----------------------------
Sub test()
Dim R As Long
Dim Sh As Worksheet
Dim Sh1 As Worksheet

'À renseigner selon ton application :Classeur & Feuille
Set Sh = Worksbook("NomClasseurSource.xls").Worksheets("Feuil1")
Set Sh1 = Worksbook("NomClasseurDestination.xls").Worksheets("Feuil1")

With Sh1
R = .Range("A65536").End(xlUp)(2).Row
Range("A" & R) = Sh.Range("H4")
R = .Range("C65536").End(xlUp)(2).Row
Range("C" & R) = Sh.Range("H9")
R = .Range("F65536").End(xlUp)().Row
Range("F" & R) = Sh.Range("H5")
End With

End Sub
'-----------------------------



"Anatole" discussion :

Bonjour,
J'aimerais savoir comment faire pour faire une macro qui va copier du
classeur 1 vers le classeur 2 qui sont tous les deux ouverts.

exemple on va copier du classeur donneur se qui se trouve en cellule H4
,
H9 h H5 vers le classeur 2 qui le classeur receveur.

Mais le classeur receveur va stocker H4 en A4 si vide si non
prendre la cellule en dessous. c'est A5 ainsi de suite.
H9 en C9
si
vide si non prendre la cellule en dessous , c'est à dire C10 ainsi de
suite.
H 5 en F5
si vide si non prendre la cellule en dessous F6 ainsi de suite.

info : sur ligne 400 dans le classeur receveur je fait le
total
de la colonne A - C - F qui totalise de A4 à 399. idem pou C et F.

Merci à vous.

Anatole.



Anatole
Le #18721491
Bonsoir,
Merci à Michdenis et JJ, j'ai réussi à adapter à feuille, cà fonctionne.
Juste une autre précion, si c'était à copier dans le même classeur mais de
feuille 1 a feuille 2 , qu'est ce qui faut changer dans les premières
ligne de la macro.
Merci par Anticipation et bonne soirée
Anatole.
"michdenis"
ça pourrait ressembler à quelque chose comme ceci :

'-----------------------------
Sub test()
Dim R As Long
Dim Sh As Worksheet
Dim Sh1 As Worksheet

'À renseigner selon ton application :Classeur & Feuille
Set Sh = Worksbook("NomClasseurSource.xls").Worksheets("Feuil1")
Set Sh1 = Worksbook("NomClasseurDestination.xls").Worksheets("Feuil1")

With Sh1
R = .Range("A65536").End(xlUp)(2).Row
Range("A" & R) = Sh.Range("H4")
R = .Range("C65536").End(xlUp)(2).Row
Range("C" & R) = Sh.Range("H9")
R = .Range("F65536").End(xlUp)().Row
Range("F" & R) = Sh.Range("H5")
End With

End Sub
'-----------------------------



"Anatole" discussion :

Bonjour,
J'aimerais savoir comment faire pour faire une macro qui va copier du
classeur 1 vers le classeur 2 qui sont tous les deux ouverts.

exemple on va copier du classeur donneur se qui se trouve en cellule H4
,
H9 h H5 vers le classeur 2 qui le classeur receveur.

Mais le classeur receveur va stocker H4 en A4 si vide si non
prendre la cellule en dessous. c'est A5 ainsi de suite.
H9 en C9
si
vide si non prendre la cellule en dessous , c'est à dire C10 ainsi de
suite.
H 5 en F5
si vide si non prendre la cellule en dessous F6 ainsi de suite.

info : sur ligne 400 dans le classeur receveur je fait le
total
de la colonne A - C - F qui totalise de A4 à 399. idem pou C et F.

Merci à vous.

Anatole.



Publicité
Poster une réponse
Anonyme