Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 Code Macro "effacer des cellules (garder les lignes) en fonction du mois en cours"

LaREUNION

XLDnaute Nouveau
Bonsoir à tous, je suis nouveau ici et c'est la première fois que je post sur un forum, c'est dire si je ne trouve pas solution à mon problème, en général en me baladant de forum en forum j'arrive à a en venir à bout mais la le problème dépasse mes capacités.

Voici ce que je cherche à faire, je suis entrain d'améliorer mon budget mensuel, jusqu'à maintenant je le faisait sur Numbers de Mac, et j'ai décidé de venir sur Excel parce que beaucoup de personne que je veux aider à gérer leur budget sont sur PC.

Au premier jour de chaque mois je voudrais que l'ensemble du classeur ce vide (J'ai enregistré une macro de tout ce que je faisait et j'ai recopier les codes de VBA dans un bloc note pour pas le perdre.) Jusque la sa fonctionne bien, en faisant fonctionner la macro, le classeur ce vide bien comme je lui est demandé, etc.. Là où sa se complique c'est qu'il y a des partie du tableau que je veux supprimer en fonction du mois en cours.

Exemple: Il y a des dépenses programmer pour Juin 2016, Août 2016, Décembre 2016. Nous somme le 01 Juillet 2016 j'aimerais que les cellules de Juin 2016 soit SUPPRIMER, j'insiste sur supprimer car j'ai trouvé des exemples de code VBA mais cela supprime la ligne et a coté de ces lignes il y a d'autre information que je ne veux pas perdre.

Pour récapituler: j'aimerais une macro que quand je l'active,en L6 par exemple jusqu'a l'infini (Si rajout de ligne dans le tableau dans l'avenir) Une macro puisse venir scaner les dates et si une dates est dépassée, que les données des cellules en L6 M6 N6 soit effacer et ainsi de suite pour les lignes suivantes. Je précise que L6 L7 L8 etc... Seront des listes déroulantes, j'ai activer "ignorer si vide" dans la validation de donnée pour autorisé le macro de vider la cellule. J'aimerais ensuite que les cellules du dessous viennent reprendre la place des cellules vides


Ps: Ceci est un exemple, j'aimerais pouvoir réutiliser le code du macro pour l'appliquer à d'autre tableau sur d'autre cellule si vous pourriez m'aider a comprend comment le personnaliser. Sa serait super

J'ai joins une impression d'ecran pour exemple car je n'arrivais pas a chargé le fichier excel
 

Pièces jointes

  • 2016-01-18 (2).jpg
    61.8 KB · Affichages: 120

st007

XLDnaute Barbatruc
Re : Code Macro "effacer des cellules (garder les lignes) en fonction du mois en cour

Bonjour,

C'est le principe d'un forum, et celui-ci est génial pour apprendre, s'améliorer et pratiquer.
Il y a bien sure un minimum d'analyse et de compréhension à avoir au lu d'un post, et là, parfois ....

Un problème bien exposé est souvent à moitié résolu ... tu as déjà pas mal de mots clé à rechercher (voir barre de recherche google personnalisé)

J'utilise dans la macro Set plage = ActiveCell.CurrentRegion, en français, on dirait la zone de données où je me trouve
Pour ton fichier, si les tableaux ne bougent pas, on peut définir cette zone par Range("L6:O21") ou plus précisément avec le nom de l'onglet avec Sheets("REVENU")Range("L6:O21")
ou encore pour être plus large avec Rows.count pour dire à excel sur autant de lignes que comporte le fichier. Avec .end(xlup).row, tu pars de la dernière ligne (1048576) et tu remonte jusqu’à trouvé une cellule non vide
Set Plage = Range("L6:O" & Range("O" & Rows.Count).End(xlUp).Row)

Tout l’intérêt donc du fichier exemple reflétant exactement la disposition, le format des cellules etc et le résultat souhaité.
Maintenant, tu n'as eu que moi comme interlocuteur, pour attirer les macro-ins qui habitent en VBA-tie,
un bout de fichier exemple, surtout sans mot de passe, et illustre tes propos, tu parles d'une macro créée avec l'enregistreur, super, mais elle est où ?
l'envoi de fichier .xlsm est aussi facile à envoyé qu'un .zip avec "Aller en mode avancé" puis clic sur le trombone

Dans ton cas des mots clé comme :
supprimer ligne tableau date

D'autres sections existent ici :
https://www.excel-downloads.com/forums/trucs-et-astuces.34/
par exemple
il est aussi utile de mettre dans ton profil ou ta signature la version d'excel que tu utilise, certaines fonctions apparaissent au fil des années...
 

LaREUNION

XLDnaute Nouveau
Re : Code Macro "effacer des cellules (garder les lignes) en fonction du mois en cour

Coucou st007, j'ai un probleme Mes feuilles seront protégé... Car je ne veux pas que ceux qui seront entrain de gérer leur budget sans faire gaffe se mette a modifier des cellules.. Ils n'aurons droit donc de trainer que la ou j'aurais laissé les cellules dévérouiller... sauf que une macro ne fonctionne pas dans une feuille protégé.. J'ai crue voir sur internet qu'apparament il fallais rentré un code pour que cela puisse ce faire. C'est dans tes cordes ça ???
 

st007

XLDnaute Barbatruc
Re : Code Macro "effacer des cellules (garder les lignes) en fonction du mois en cour

Sheets("REVENU"). Unprotect Password:="ezaezaeza"
Sheets("REVENU"). Protect Password:="ezaezaeza"

Bien placés genre
VB:
Sub SupprimerLignesZero()
    Dim plage As Range
    Dim i As Long
    Application.ScreenUpdating = False
    Sheets("REVENU").Activate
    Sheets("REVENU").Unprotect Password:="ezaezaeza"
    Range("L4").Select
    Set plage = ActiveCell.CurrentRegion
    For i = plage.Rows.Count To 3 Step -1
        If plage(i, 1) < Now Then plage.Rows(i).Delete xlShiftUp
    Next
    ActiveSheet.ListObjects("Tableau1").Resize Range("$L$5:$O$21")
    Sheets("REVENU").Protect Password:="ezaezaeza"
    Sheets("DEPENSE").Unprotect Password:="ezaezaeza"
    Sheets("DEPENSE").Activate
    Range("G4").Select
    Set plage = ActiveCell.CurrentRegion
    For i = plage.Rows.Count To 3 Step -1
        If plage(i, 1) < Now Then plage.Rows(i).Delete xlShiftUp
    Next
    ActiveSheet.ListObjects("Tableau2").Resize Range("$G$5:$J$30")
    Sheets("DEPENSE").Protect Password:="ezaezaeza"
    Application.ScreenUpdating = True
End Sub
 

st007

XLDnaute Barbatruc
Re : Code Macro "effacer des cellules (garder les lignes) en fonction du mois en cour

Bonjour,
Essaye ce fichier,
ton soucis vient peut-être de la taille des tableaux de départ, 16 lignes attendu, 24 en prévu ..
pour agrandir le tableau de départ :
feuil revenu, O21, tu tire l'angle bleu en bas à droite
comme j'écrivais plus haut, après nettoyage, je recoupe le tableau à la ligne 21. Si après le nettoyage, il subsiste des dates au delà de O21, elles ne seront pas prise en compte pour le prochain nettoyage.
 

Pièces jointes

  • La reunion fichier original.xlsm
    85 KB · Affichages: 48
  • La reunion fichier original.xlsm
    85 KB · Affichages: 45

LaREUNION

XLDnaute Nouveau
Re : Code Macro "effacer des cellules (garder les lignes) en fonction du mois en cour

Coucou st007, écoute voila, toute la journée, j'ai rebosser bien sur mon fichier je me suis dit qu'il pouvais être encore un peu plus logique, toujours dans l'idée de le simplifier pour les personnes qui vont l'utiliser. Ces personnes ont beaucoup de difficulté a géré un budget, et mon but et de leur apporter une plateforme simple. J'ai fait les test aujourd'hui toute les cellules fonctionne, et sont bien connecté entre elle. Donc pas d'erreur! Je t'es envoyer ce fichier avec les 3 seul partie que je veux voir la macro agir dessus je te l'es ai entouré afin que tu puisse les voirs. L'idée original : Effacement des cellules en fonction du mois en cours, sans supprimer les lignes et en conservant la structure des tableaux. Petite note supplémentaire, c'est tableau seront vérrouillé: Les gens ne pourrons remplir que les cellules qui n'ont pas de protection.. Et les macros doivent fonctionner malgré ces protections. Tu peut mettre "azeazeaze" comme mot de passe je sais comment le modifier dans le VBA.

Tu peut m'envoyer boulé sur ce coup, c'est ma dernier tentative d'intégré une macro, après quoi j'abandonne, c'est outside of my mind... Je dirait au gens de supprimer les mois qu'il savent être dépassé.

PS: j'ai intégré ma petite macro en mode enregistrement dedans, sur les cellules que je voulais effacer, tu pourra voir de toi meme comment sa fonctionne " La macro efface les cellules de la feuille mon quotidien, et une ligne de la feuille mes revenus c'est tout... Par compte a cela je ne sais pas comment lui demander de rentré le mot de passe de la feuille verrouiller j'ai essayé de faire comme tu m'a dit, mais sa me dépasse.

Voila voila
 

Pièces jointes

  • Gestion Budget version final.xlsm
    93 KB · Affichages: 54
  • Gestion Budget version final.xlsm
    93 KB · Affichages: 46

st007

XLDnaute Barbatruc
Re : Code Macro "effacer des cellules (garder les lignes) en fonction du mois en cour

euh, toujours aucune trace de macro ....

tu as bien ajouté les tableaux
fais "alt"+"f11" ou onglet affichage puis macro
bien inséré un module, et là, il est vide, c'est là qu'il te faut coller l'ensemble des lignes de code depuis sub jusqu'au end sub inclus,
enregistrer le fichier sous .xlsm (çà c'est fait aussi)
créé une liste de date, ok, encore que ....

dans la feuille "option liste déroulante, tu sélectionne toute la colonne A (tu places la souris sur le A de l'en-tête de colonne, une flèche vers le bas noir apparaît)
tu clic droit sur la souris et choisi, "nommer une plage"
tu lui donne un nom (j'ai choisi "dates" attention à l'orthographe, la casse etc, aucune variante ne sera accepté pour la suite)
dans la zone "fait référence à", tu tapes
Code:
=DECALER('OPTION LISTE DEROULANTE'!$A$1;;;NBVAL('OPTION LISTE DEROULANTE'!$A:$A))
ce qui a pour effet de pouvoir utiliser toutes les valeurs présente en colonne A pour tes menu déroulants ou formules
si tu en ajoute, la liste s'adapte toute seule, si tu en supprime, veille à ne pas laisser de trous !

ensuite, pour utilisé cette liste, (ce que je faisais pour remplir les dates)


tu te places en L6 feuille revenu
puis onglet données, validation de donnée,
tu sélectionne Liste
et dans source : "=dates" (aucun écart admissible ici)
puis tu étire L6 jusqu'à L21
pour reprendre l'affichage du mois année uniquement,
dans l'onglet accueil, nombre,format de cellule, personnalisé et indiqué : mmm aaaa (tu verras ex : mai 2016 au lieu de 01/05/2016)
reproduit en G5 et L6 de la feuille depense
 

Pièces jointes

  • Gestion Budget version final.xlsm
    85.5 KB · Affichages: 37
  • Gestion Budget version final.xlsm
    85.5 KB · Affichages: 42

LaREUNION

XLDnaute Nouveau
Re : Code Macro "effacer des cellules (garder les lignes) en fonction du mois en cour

Coucou, finalement j'en suis venu a bout et tout fonctionne merveilleusement bien maintenant !!!!!!!! Par compte je veux partager le fichier avec ma femme et voici ce qu'il me dit : fichier joint
 

Pièces jointes

  • 2016-02-02.jpg
    23.6 KB · Affichages: 64

Discussions similaires

Réponses
9
Affichages
258
Réponses
22
Affichages
731
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…