VBA Archivage
Fermé
titom0135
Messages postés
2
Date d'inscription
vendredi 5 mai 2017
Statut
Membre
Dernière intervention
10 mai 2017
-
5 mai 2017 à 10:18
titom0135 Messages postés 2 Date d'inscription vendredi 5 mai 2017 Statut Membre Dernière intervention 10 mai 2017 - 10 mai 2017 à 01:10
titom0135 Messages postés 2 Date d'inscription vendredi 5 mai 2017 Statut Membre Dernière intervention 10 mai 2017 - 10 mai 2017 à 01:10
A voir également:
- VBA Archivage
- Excel compter cellule couleur sans vba - Guide
- Mkdir vba ✓ - Forum VB / VBA
- Vba range avec variable ✓ - Forum VB / VBA
- Autofill vba ✓ - Forum Excel
- L'indice n'appartient pas à la sélection vba ✓ - Forum Programmation
2 réponses
phadeb
Messages postés
86
Date d'inscription
dimanche 2 avril 2006
Statut
Membre
Dernière intervention
13 mai 2017
21
7 mai 2017 à 17:38
7 mai 2017 à 17:38
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
--
titom0135
Messages postés
2
Date d'inscription
vendredi 5 mai 2017
Statut
Membre
Dernière intervention
10 mai 2017
10 mai 2017 à 01:10
10 mai 2017 à 01:10
Je comprend le principe mais je n'arriver pas à faire le code