VBA Archivage
titom0135
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
titom0135 Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
titom0135 Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Bonjour, j'ai un petit problème je ne suis pas un pro de la programmation VBA et j'ai besoin de faire un fichier excel pour le travail et j'aurais besoin d'aide pour trouver le bon code.
Je vous explique,j'ai besoin d'entrer des données mensuel dans [Données] et lorsque j'appuis sur le bouton (Enregistrer) le tout dois s'enregistrer dans [MoisCourants] à la bonne date en l'occurrence. Lorsque je commence une nouvelle semaine les données dans [MoisCourant] doivent rester présente.

Ensuite, quand le mois est terminer je dois l'archiver dans [Archive]. Quand le second mois est complet je dois l'archiver de nouveau, mais à la suite du second et ainsi de suite.

Je vous explique,j'ai besoin d'entrer des données mensuel dans [Données] et lorsque j'appuis sur le bouton (Enregistrer) le tout dois s'enregistrer dans [MoisCourants] à la bonne date en l'occurrence. Lorsque je commence une nouvelle semaine les données dans [MoisCourant] doivent rester présente.

Ensuite, quand le mois est terminer je dois l'archiver dans [Archive]. Quand le second mois est complet je dois l'archiver de nouveau, mais à la suite du second et ainsi de suite.

A voir également:
- VBA Archivage
- Archivage sms - Guide
- Excel compter cellule couleur sans vba - Guide
- Annuler archivage story instagram - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
2 réponses
Bonjour,
Pensez à faire une sauvegarde de votre fichier source car le VBA écrase les valeurs sans retour possible pendant vos tests
Pour enregistrer
- Boucle sur les lignes de la première feuille
- controle que le mois et l'année de la date en C1 de la première feuille est bien = au mois et année de la feuille mois courant, si non, mettre les bonnes dates dans N1 et R1 et le bon nom de mois dans A2 (et la bonne organisation de calendrier, soit programmer, soit copier coller depuis un modèle existant)
- si bon mois et année, faire un controle du champ B4 (premier jour de la semaine) et comparer avec une seconde boucle aux jours de la feuille mois courant en partant de A4 jusqu'a Y19, il faudra une boucle pour les lignes, une boucle pour les colonnes, on pourra ajuster les steps des lignes a 3 et des colonnes à 4 pour ne parcourir que les cellules souhaitées, (pour optimiser, sortir de la boucle si la cellule suivante + 3 colonnes a un fond gris, ou +2 lignes -21 colonnes en cas de dimanche
- une fois la correspondance des lignes trouvée, copier le vecteur de la première feuille dans la ligne de cellule trouvée + 2 lignes
- une boucle de contrôle de la bonne copie avant de vider les cellules de la première feuille (sinon message d'erreur)
- une dernière boucle pour vider les cellules de la première feuille
Pour archiver
- sélectionner de A1 a AB21, copier
- trouver dernière ligne de la feuille archive à avoir une bordure non standard (par les propriétés de la cellule), ou bien en faisant un end(xlup) depuis la dernière ligne d'excel, et en faisant +3 lignes puis coller (car dernière ligne du tableau est vide de valeur + un espace pour séparer les mois
Bonus
Si vous êtes inspirés, un bouton recover, qui fait l'inverse de ce qu'on vient de faire, c'est à dire récupér une date de l'archive vers le mois courant et une semaine du mois courant vers les données
--
Pensez à faire une sauvegarde de votre fichier source car le VBA écrase les valeurs sans retour possible pendant vos tests
Pour enregistrer
- Boucle sur les lignes de la première feuille
- controle que le mois et l'année de la date en C1 de la première feuille est bien = au mois et année de la feuille mois courant, si non, mettre les bonnes dates dans N1 et R1 et le bon nom de mois dans A2 (et la bonne organisation de calendrier, soit programmer, soit copier coller depuis un modèle existant)
- si bon mois et année, faire un controle du champ B4 (premier jour de la semaine) et comparer avec une seconde boucle aux jours de la feuille mois courant en partant de A4 jusqu'a Y19, il faudra une boucle pour les lignes, une boucle pour les colonnes, on pourra ajuster les steps des lignes a 3 et des colonnes à 4 pour ne parcourir que les cellules souhaitées, (pour optimiser, sortir de la boucle si la cellule suivante + 3 colonnes a un fond gris, ou +2 lignes -21 colonnes en cas de dimanche
- une fois la correspondance des lignes trouvée, copier le vecteur de la première feuille dans la ligne de cellule trouvée + 2 lignes
- une boucle de contrôle de la bonne copie avant de vider les cellules de la première feuille (sinon message d'erreur)
- une dernière boucle pour vider les cellules de la première feuille
Pour archiver
- sélectionner de A1 a AB21, copier
- trouver dernière ligne de la feuille archive à avoir une bordure non standard (par les propriétés de la cellule), ou bien en faisant un end(xlup) depuis la dernière ligne d'excel, et en faisant +3 lignes puis coller (car dernière ligne du tableau est vide de valeur + un espace pour séparer les mois
Bonus
Si vous êtes inspirés, un bouton recover, qui fait l'inverse de ce qu'on vient de faire, c'est à dire récupér une date de l'archive vers le mois courant et une semaine du mois courant vers les données
--