supression lignes condition date

  • Initiateur de la discussion Initiateur de la discussion balstepha
  • 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 !

B

balstepha

Guest
Bonjour,
voilà, j'suis pas un pro en VBA, et j'ai un petit fichier dans lequel une macro supprime des lignes d'un tableau après avoir sauvegarder le résultat dans un autre tableau.
Les macros fonctionnent bien.
Sauf que
Chaque jour de la semaine une sauvegarde journalière vient incrémenter le tableau de la semaine.
En fin de semaine, le dimanche, la sauvegarde et la suppression des lignes doit se faire manuellement.
Dans ma macro, si l'utilisateur se trompe et incrémente 8 jours au lieu de 7 ...
Quand il lance la macro Semaine y'a un plantage car la macro ne surprime que 7 lignes qui sont définies et ça craint ...

Comment peut-on :
Automatiser la sauvegarde et la purge du tableau en fonction des dates du Lundi au dimanche. ??
Je vous joint l'exemple .. Merci si quelqu'un veut bien m'aider .. Si non, je chercherais encore et encore dans les message du Forum 😉
Demandez moi des explications si vous n'avez pas tout compris ...
 

Pièces jointes

Re : supression lignes condition date

Bonjour,

Pas tout compris mais,

Voici ta macro semaine modifiée, avec une variable 'Derligne' pour récupérer la dernière ligne occupée à partir de B23.

Je l'ai purgée des élément inutiles (Select avant copy, etc)

Code:
Sub semaine()
'
' semaine Macro
    Dim DerLigne As Long
    Application.ScreenUpdating = False
    With Sheets("Annuel")
        .Unprotect
        .Range("B5:U5").Copy
        .Range("B7").PasteSpecial Paste:=xlPasteValues, _
                                  Operation:=xlNone, _
                                  SkipBlanks:=False, _
                                  Transpose:=False
        Application.CutCopyMode = False
        .Rows("7:7").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        .Protect DrawingObjects:=False, Contents:=True, Scenarios:=False
    End With
    ' EffSemaine Macro
    '
    With Sheets("Saisie Jours")
        'Numéro de la dernière cellule occupée sous B23
        'est égal à faire un CTRL+Flèche basse à partir de B23
        DerLigne = .Range("B23").End(xlDown).Row
        .Unprotect
        .Rows("23:" & DerLigne).Delete Shift:=xlUp
        .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    End With
    Application.ScreenUpdating = True
End Sub

A+
 
Re : supression lignes condition date

Milles Merci pour ta réponse Hasco 🙂
Néanmoins j'ai remplacé ma macro semaine par la tienne et c'est pas ça ...
L'idée est bien là !
Je veux effacer les lignes s'intercalant entre la ligne 21 (cahée) et la ligne 23 de l'onglet saisie jours
Mais je veux conserver le total sem, et pareil dans l'onglet annuel la je ne veux rien éffacer, juste ajouter la sauvegarde de la semaine, mais conserver la ligne 5 (qui est liée avec les données de l'onglet saisie jours), juste incrémenter une ligne supplémentaire à chaque sauvegarde de semaine, donc entre les lignes 6(cachée) et 8

La difficulté pour moi et de supprimer, toutes les lignes venant s'ajouter dans l'onglet saisie jour et ce peut importe combien de lignes ce sont ajoutées, normalement 7, comme dans ma macro mais justement en cas de lignes inférieurs ou supérieur ma macro efface ce que je ne veux pas qu'elle efface dans l'onglet saisie jour...

Merci en tout cas de m'aider, j'espère que je me suis bien expliqué 🙂

En examinant ta macro de plus près, je pense que c'est End(xlDown) qui ne va pas en fait je veux conserver la ligne total Sem après l'effacement ...
 
Dernière modification par un modérateur:
Re : supression lignes condition date

Je joins le fichier tel qu'il doit être, les macro fonctionne, le résultat est celui que je veux, mais je suis passé par des trucs .. compliqués.
Quelqu'un a plus simple ? Sans la feuille Cache par exemple ?
 

Pièces jointes

Dernière modification par un modérateur:
Re : supression lignes condition date

Bonsoir,

Dans le fichier joint, j'ai modifié la macro 'SaveJour1' essai de faire pareil avec 'Semaine'.
Peut-être inutile de protéger et déprotéger pendant les tests.
Beaucoup de modules vides qui surcharge le fichier.
un seul module suffit avec toutes les macros.
A+
 
Re : supression lignes condition date

Merci Hasco,
Je comprend un peut, la simplification que tu as fais, quoique ça reste un peut du chinois pour moi. Tu as supprimé les redondances avec sélection+copy en une seule ligne pour les deux actions, c'est plus pure !



En tout cas Bravos pour la compréhension, même moi, quand je me relit .... 😉
 
Dernière modification par un modérateur:
Re : supression lignes condition date

Je n'ai pas d'autre solution que de mettre la ligne 5 de l'onglet annuel en liaison avec la ligne Total de l'onglet saisie Jours ?
C'est cela qui m'a posé un problème ... Pour ne pas perdre la liaison quand je supprime les jours de la semaine de l'onglet saisie jour ... et pour remettre la ligne total de l'onglet saisie .. j'ai mis une feuille supplémentaire où je reprend la ligne pour la coller ...

Il me faudrait une instruction pour :
Prendre la ligne "Total" de l'onglet saisie jour, et ce peu importe sa position ...

Ne pas perdre les formule de la ligne 5 de l'onglet "Annuel" quand je supprime les lignes dans l'onglet saisie jour

Enfin si t'as pas le temps, je ferais avec ce que j'ai fais, ça me plait pas trop .. mais ça fonctionne 😉

Encore merci pour le temps consacrée aux autres !
 
Dernière modification par un modérateur:
Re : supression lignes condition date

Bonsoir,

Choisir Copy>insertion plutôt qu'un lien entre les deux onglets .. C'est ça ?

Ben, c'est que je comprends pas trop ce que tu veux dire.
Quoiqu'il en soit, dans l'exemple que je t'ai donné, tu peux voir qu'il n'est pas forcément necessaire de faire des select ainsi que des Copy+pastSpecial lorsque tu veux passer des valeurs d'une cellules à une autre.
Cellule1.Value = Cellule2.Value suffit

Bon courage.
A+
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

K
Réponses
4
Affichages
1 K
kiki31140
K
Réponses
7
Affichages
1 K
C
Réponses
1
Affichages
2 K
Chalafraiz
C
I
Réponses
4
Affichages
2 K
I
M
Réponses
4
Affichages
2 K
mika121
M
D
Réponses
1
Affichages
1 K
duhaphil
D
D
Réponses
10
Affichages
2 K
Darksanity
D
Retour