OVH Cloud OVH Cloud

Ajout de lignes et Sommes

5 réponses
Avatar
lolo
Bonjour à toutes et à tous,

Dans mon fichier1, se trouve une macro qui lance une macro dans mon
fichier2 (Recopie d'un onglet, tri, copie des données triées,
suppression de l'onglet et fermeture de fichier2). Ceci fonctionne.
Je voudrais faire la même chose avec les 5 autres fichiers, mais je ne
vois pas comment faire pour insérer dans mon fichier1, à la suite de la
1ere copie, les données de fichier3, et aprés insérer à la suite des
données de fichier3 les données de fichier4 etc.
Comment faire pour insérer à partir de la derniere ligne remplie ?

Et aussi comment faire, pour qu'une fois mes 5 fichiers copiées,
j'insére une somme automatique partant de ma derniere ligne à la
premiere, étant donnée que je ne connais pas à l'avance le nombre de
lignes que va faire mes copiés successives.

Voila mes 2 gros problémes. Je retourne faire des tests.
Merci d'avance.

5 réponses

Avatar
JLuc
Bonjour à toutes, tous et à lolo,
dans ton message,tu nous dis :

|| Bonjour à toutes et à tous,
||
|| Dans mon fichier1, se trouve une macro qui lance une macro dans mon
|| fichier2 (Recopie d'un onglet, tri, copie des données triées,
|| suppression de l'onglet et fermeture de fichier2). Ceci fonctionne.
|| Je voudrais faire la même chose avec les 5 autres fichiers, mais je
|| ne vois pas comment faire pour insérer dans mon fichier1, à la suite
|| de la 1ere copie, les données de fichier3, et aprés insérer à la
|| suite des données de fichier3 les données de fichier4 etc.
|| Comment faire pour insérer à partir de la derniere ligne remplie ?
||
|| Et aussi comment faire, pour qu'une fois mes 5 fichiers copiées,
|| j'insére une somme automatique partant de ma derniere ligne à la
|| premiere, étant donnée que je ne connais pas à l'avance le nombre de
|| lignes que va faire mes copiés successives.
||
|| Voila mes 2 gros problémes. Je retourne faire des tests.
|| Merci d'avance.

Bonjour.
Si c'est la dernière cellule utilisée de la colonne A :
DerniereCellule=Range("A65536").End(xlup).address
Cordialement.
Daniel
"Nicolas Meunier" a écrit dans le message de news:


Ce n'est pas de moi, je l'ai pris dans un post plus bas.
Mais tu peux l'utiliser pour rendre cette cellule(ligne+1) active et inserer
ton fichier
ensuite pour mettre ta formule

--

JLuc
Pour m'ecrire, supprimer 'ns.' dans l'adresse.
~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
Avatar
lolo
Bonjour,
Merci pour l'astuce. Je viens de parcourir le forum et j'ai découvert le
fil de la discussion.
Mais je ne vois pas comment faire pour insérer à partir de la derniere
cellule +1, mes données que je veux copier. La méthode Paste, me renvoie
une erreur.


Bonjour à toutes, tous et à lolo,
dans ton message,tu nous dis :

|| Bonjour à toutes et à tous,
||
|| Dans mon fichier1, se trouve une macro qui lance une macro dans mon
|| fichier2 (Recopie d'un onglet, tri, copie des données triées,
|| suppression de l'onglet et fermeture de fichier2). Ceci fonctionne.
|| Je voudrais faire la même chose avec les 5 autres fichiers, mais je
|| ne vois pas comment faire pour insérer dans mon fichier1, à la suite
|| de la 1ere copie, les données de fichier3, et aprés insérer à la
|| suite des données de fichier3 les données de fichier4 etc.
|| Comment faire pour insérer à partir de la derniere ligne remplie ?
||
|| Et aussi comment faire, pour qu'une fois mes 5 fichiers copiées,
|| j'insére une somme automatique partant de ma derniere ligne à la
|| premiere, étant donnée que je ne connais pas à l'avance le nombre de
|| lignes que va faire mes copiés successives.
||
|| Voila mes 2 gros problémes. Je retourne faire des tests.
|| Merci d'avance.

Bonjour.
Si c'est la dernière cellule utilisée de la colonne A :
DerniereCellule=Range("A65536").End(xlup).address
Cordialement.
Daniel
"Nicolas Meunier" a écrit dans le message de news:


Ce n'est pas de moi, je l'ai pris dans un post plus bas.
Mais tu peux l'utiliser pour rendre cette cellule(ligne+1) active et inserer
ton fichier
ensuite pour mettre ta formule



Avatar
papou
Bonjour
Si tu utilises une boucle pour la copie de tes fichiers, tu définis à
l'intérieur de la boucle la première cellule vide avec quelque chose comme
ça :
dernligne = worksheets("Feuil1").Range("A65536").End(xlup)(2)
en adaptant avec le nom de la feuille.
Pour la somme tu utilises cette variable dans une formule :
ActiveSheet.Range("A65536").End(xlUp)(2).Formula = _
"=SUM(A1:A" & dernligne & ")"

Cordialement
Pascal

"lolo" a écrit dans le message de news:
4332d332$0$20937$
Bonjour à toutes et à tous,

Dans mon fichier1, se trouve une macro qui lance une macro dans mon
fichier2 (Recopie d'un onglet, tri, copie des données triées, suppression
de l'onglet et fermeture de fichier2). Ceci fonctionne.
Je voudrais faire la même chose avec les 5 autres fichiers, mais je ne
vois pas comment faire pour insérer dans mon fichier1, à la suite de la
1ere copie, les données de fichier3, et aprés insérer à la suite des
données de fichier3 les données de fichier4 etc.
Comment faire pour insérer à partir de la derniere ligne remplie ?

Et aussi comment faire, pour qu'une fois mes 5 fichiers copiées, j'insére
une somme automatique partant de ma derniere ligne à la premiere, étant
donnée que je ne connais pas à l'avance le nombre de lignes que va faire
mes copiés successives.

Voila mes 2 gros problémes. Je retourne faire des tests.
Merci d'avance.


Avatar
JLuc
Bonjour à toutes, tous et à lolo,
dans ton message,tu nous dis :

|| Bonjour,
|| Merci pour l'astuce. Je viens de parcourir le forum et j'ai
|| découvert le fil de la discussion.
|| Mais je ne vois pas comment faire pour insérer à partir de la
|| derniere cellule +1, mes données que je veux copier. La méthode
|| Paste, me renvoie une erreur.
||
||
Excuse moi pour le delai de reponse, il a fallut que je me replonge un peu
dans le vb
copie la suite dans une macro et adapte a ton cas

Sub Inserer()
'
' INSERER par J.L. LAURENT
'
On Error Resume Next

' Recuperation de la derniere cellule vide

DerniereCellule = Range("A65536").End(xlUp).Address
DerniereCellule = Left(DerniereCellule, 3) & _
Val(Right(DerniereCellule, 1) + 1)

' Ouvrir un fichier

FichierAOuvrir = Application _
.GetOpenFilename("Classeurs (*.xls), *.xls")

' Executer la copie
If FichierAOuvrir <> False Then
Workbooks.Open Filename:=FichierAOuvrir
' Adapter le range a ton nbr de colonne
jusqua = Range("B65536").End(xlUp).Address
Range("$A$1", jusqua).Select
Selection.Copy
Windows("Fichier1.xls").Activate
Range(DerniereCellule).Select
ActiveSheet.Paste
For Each w In Workbooks
If w.Name <> ThisWorkbook.Name Then
w.Close savechanges:úlse
End If
Next w
End If

'
End Sub

Bonne continuation

--

JLuc
Pour m'ecrire, supprimer 'ns.' dans l'adresse.
~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
Avatar
lolo
Bonjour,

Merci pour le code.
J'avais trouvé une autre méthode mais je vais tester la votre lundi
matin au bureau.
Travaillant par bout de code, je pense que je vais plutot utiliser la
votre qui se fait en une fois.
Encore merci en tout cas.
Et je vous tient au courant lundi.

Bonjour à toutes, tous et à lolo,
dans ton message,tu nous dis :

|| Bonjour,
|| Merci pour l'astuce. Je viens de parcourir le forum et j'ai
|| découvert le fil de la discussion.
|| Mais je ne vois pas comment faire pour insérer à partir de la
|| derniere cellule +1, mes données que je veux copier. La méthode
|| Paste, me renvoie une erreur.
||
||
Excuse moi pour le delai de reponse, il a fallut que je me replonge un peu
dans le vb
copie la suite dans une macro et adapte a ton cas

Sub Inserer()
'
' INSERER par J.L. LAURENT
'
On Error Resume Next

' Recuperation de la derniere cellule vide

DerniereCellule = Range("A65536").End(xlUp).Address
DerniereCellule = Left(DerniereCellule, 3) & _
Val(Right(DerniereCellule, 1) + 1)

' Ouvrir un fichier

FichierAOuvrir = Application _
.GetOpenFilename("Classeurs (*.xls), *.xls")

' Executer la copie
If FichierAOuvrir <> False Then
Workbooks.Open Filename:=FichierAOuvrir
' Adapter le range a ton nbr de colonne
jusqua = Range("B65536").End(xlUp).Address
Range("$A$1", jusqua).Select
Selection.Copy
Windows("Fichier1.xls").Activate
Range(DerniereCellule).Select
ActiveSheet.Paste
For Each w In Workbooks
If w.Name <> ThisWorkbook.Name Then
w.Close savechanges:úlse
End If
Next w
End If

'
End Sub

Bonne continuation