Archivage de données

  • Initiateur de la discussion Initiateur de la discussion gianluca
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

gianluca

XLDnaute Occasionnel
Bonjour le Forum...


Une nouvelle question sur laquelle je bute....

Gans mon projet de gestion de congé, je souhaite pouvoir archiver en fin d'année les différentes feuilles de suivis individuels des agents. (Et ce dans un classeur différent que j'ouvre et ferme apres les opérations d'archivage)

Je souhaite que chaque feuille agent soit archivée sur la même feuille du classeur archives.

Pour chaque feuille agent de mon classeur de gestion Congés, il me faut:
- connaitre la dernière ligne (Ca je sais faire, merci à vous),
- copier les données,
- les coller a la suite sur la feuille du classeur d'archivage

ensuite je dois trouver la dernière ligne du la feuille du classeur Archivages pour coller les données de la feuille de l'agent suivant à la suite.
et là je bugge... pour passer d'un classeur à l'autre.... 🙂


J'ai commencé a écrire cette procédure mais...

Dim RepFinAnnee As String
Dim Fichier As String, FeuilleActive As String
Dim i As Integer
Dim Derligne As Long, DerLigneDestination As Long

Fichier = "Gestions Congés - Sauvegardes.xls"
RepFinAnnee = MsgBox("Appuyez sur Ok pour lancer les traitements de fin d'année." _
& Chr(10) & Chr(10) & "ATTENTION, les données de l'exercice en cours seront archivées." _
, vbOKCancel + vbInformation + vbDefaultButton2, "Gestion Congés")

Select Case RepFinAnnee
Case 1
Sheets("Données").Select
Sheets("Données").Range("$C$2").Value = Sheets("Données") _
.Range("$C$2").Value + 1
'Ouverture du classeur de sauvegarde
Workbooks.Open (ThisWorkbook.Path & "\" & Fichier)
'Création feuille exercice
Workbooks(Fichier).Sheets.Add after:=Worksheets _
(Worksheets.Count)
Workbooks(Fichier).ActiveSheet.Name = "Exercice 2007"
'Recopie des feuilles agents
For i = 6 To ThisWorkbook.Sheets.Count
FeuilleActive = Sheets(i).Name
Sheets(FeuilleActive).Select
derlign = Range("A65536").End(xlUp).Row
Range("A1;O" & derlign).Select
Selection.Copy
Selection.Paste Destination:=Workbooks(Fichier) _
.Worksheets("Exercice 2007").Range("A25")
est-ce là qu'il faut calculer la dernière ligne de la feuille
du classeur archivage ?

End If
Workbooks(Fichier).Close savechanges:=True


Case 3
Exit Sub
Range("B6").Select

End Select

End Sub



Bref, le gars Gianluca patauge un fois de plus.... et un coup de main serait le bienvenu... 🙂

Merci à vous par avance

Bonne journée

Gianluca
 
Re : Archivage de données

bonjour gianluca


Selection.Copy
Selection.Paste Destination:=Workbooks(Fichier) _
.Worksheets("Exercice 2007").Range("A25")
est-ce là qu'il faut calculer la dernière ligne de la feuille
du classeur archivage ?

Selection.Copy
Workbooks(fichier).select
sheets("Exercice 2007").select
range("A" & cstr(range("A65000").end(xlup).row + 1)).select
selection.paste
workbooks(1).select ' Reselectionne le 1er fichier ouvert
 
Re : Archivage de données

Re everybody....


Heu... me revoilou...

Case 1
Sheets("Données").Select
Sheets("Données").Range("$C$2").Value = Sheets("Données") _
.Range("$C$2").Value + 1
'Ouverture du classeur de sauvegarde
Workbooks.Open (ThisWorkbook.Path & "\" & FichierS)
'Création feuille exercice
Workbooks(FichierS).Sheets.Add after:=Worksheets(Worksheets.Count)
Workbooks(FichierS).ActiveSheet.Name = "Exercice 2007"
'Recopie des feuilles agents
Workbooks(FichierO).Activate
For i = 6 To Workbooks(FichierO).Sheets.Count
FeuilleActive = Sheets(i).Name
Sheets(FeuilleActive).Select
Derligne = Range("A65536").End(xlUp).Row
Range("A2:O" & Derligne).Select
ici j'ai une erreur d'execution 1004 - erreur définie par l'application ou par l'objet
Selection.Copy
Workbooks(FichierS).Activate
Sheets("Exercice 2007").Select
Range("A" & CStr(Range("A65000").End(xlUp).Row + 1)).Select
Selection.Paste
Workbooks(FichierO).Activate
Next i
Workbooks(FichierS).Close savechanges:=True

Y'a un schmilblick 🙂

A l'aide les amis !!! 😀
 
Re : Archivage de données

Bonjour Hervé, Re Wilfried et le forum...


J'ai essayé avec select mais cela me génère une erreur 438 (propriét non gérée par cet objet) alors que activate marche.

en fait, pour les deux workbooks(FichierO).activate, je selectionne Origine avant le for i, je traite la feuille i, dans le traitement j'appelle Sauvegarde pour coller les données de la feuille i et je réappelle Origine pour continuer la boucle. C'est pas comme cela ?

Quand je vais en pas a pas je m'aperçois que Derligne me renvoie 1 alors que ce devrait etre 10.... ne serait-ce pas la source de l'erreur ?


Je peux vous envoyer le fichier (Hervé tu connais déjà... lol) mais par mail peut être.

A vous lire les amis...
 
Re : Archivage de données

Houhou

J'ai mis un lien pour le fichier, ou met un lien avec ta nouvelle macro sur le même site.

A plus

P.S. SUr Vista, le fichier ne se met pas en plein écran
icon8.gif


Heureusement, je suis sous 2000 Pro

Je regarde
 
Dernière édition:
Re : Archivage de données

Re le fil...


J'avance dans la macro....

elle plante maintenant quand je veux copier la selection...

'Ouverture du classeur de sauvegarde
Workbooks.Open (ThisWorkbook.Path & "\" & FichierS)
'Création feuille exercice
Workbooks(FichierS).Sheets.Add after:=Worksheets(Worksheets.Count)
Workbooks(FichierS).ActiveSheet.Name = "Exercice 2007"
'Recopie des feuilles agents
Workbooks(FichierO).Activate
For i = 6 To Workbooks(FichierO).Sheets.Count
FeuilleActive = Sheets(i).Name
Sheets(FeuilleActive).Select
Derligne = Sheets(FeuilleActive).Range("A65536").End(xlUp).Row
Sheets(FeuilleActive).Range("A2:O" & Derligne).Select
Selection.Copy
Workbooks(FichierS).Activate
'Sheets("Exercice 2007").Select
DerligneDestination = Sheets("Exercice 2007").Range("A65536").End(xlUp).Row
Selection.Paste Destination:=Sheets("Exercice 2007").Range("A" & DerligneDestination).Select

Workbooks(FichierO).Activate
Next i
Workbooks(FichierS).Close savechanges:=True


Pas simple tout cela.... 😛
 
Re : Archivage de données

Bonjour tout le mode,

Si je peux me permettre de m'immiscer dans le fil 😉

J'ai remarqué Gianluca, dans ta sub : Private Sub CBTFinAnnee_Click()
que tu code la variable "FichierO" en dur !?
Mieux vaut mettre un truc du style
Code:
FichierO = [COLOR=blue][B]ThisWorkbook.Name[/B][/COLOR]

De plus ce n'est pas "Select" pour un classeur, mais "Activate"
Donc
Code:
Workbooks(FichierO[B][COLOR=blue]).Activate[/COLOR][/B]

Ensuite, pour la dernière ligne, il faut préciser sur qu'elle feuille tu te trouves :
Code:
 For i = 6 To Workbooks(FichierO).Sheets.Count
                    FeuilleActive = Sheets(i).Name
                    Sheets(FeuilleActive).Select
                    Derligne = [COLOR=blue][B]ActiveSheet.[/B][/COLOR]Range("A65536").End(xlUp).Row

Et ainsi de suite, il vaux mieux toujours préciser sur quel objet on se trouve, lorsque l'on effectue des actions

A+
 
Re : Archivage de données

Bonjour Bruno, re le fil....


Mais je t'en prie, immisce-toi 😉

Oui je viens de me rendre compte qu'il valait mieux préciser où on se trouve...
merci de tes conseils.

je bugge maintenant pour la copie de la selection.... Mais justement peut être bien qu'excel ne sait plus qu'elle est la selection....

Ah que diable allais-je faire dans cette galère... 😱

Gianluca.
 
Re : Archivage de données

re:

voici le fichier : Fichier c-joint

Pour un gain de temps, aucun select ni activate

j'ai parametré l'année de sauvegarde -> 2007,2008,2009...... en creation de feuille
les boutons etaient copiés aussi, ils sont supprimés de la copie
Un copiage special est fait --> valeur, format, largeur de colonne je n'ai pas trouvé pour les couleurs
le pastespecial est imperatif à cause des formules

bonne journée

Ps : superbe travail les gars
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
165
  • Question Question
Microsoft 365 Problème macro
Réponses
4
Affichages
247
  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
862
Réponses
3
Affichages
673
Réponses
10
Affichages
548
Retour