Correction macro

Bonjour à tous,

je suis ultra débutant sur excel, jusqu'a présent je me limitais à quelques formules simples mais mon employeur ma récemment confié la tache de créer un fichier excel simple pour les pointages.

Le problème c'est que à la deuxième page avec le code macro qui supprime la colonne si il y a moin de 31 jours dans le mois, quand je mets le code VB et que je le compile sur le menu déroulant associé au "mois" il me met qu'il y a une erreur de compilation et de synthaxe.

Sub Masquer_Jour()
Dim Num_Col As Long
For Num_Col = 30 To 32
If Month(Cells(6, Num_Col)) <> Cells(1, 1) Then
Columns(Num_Col).Hidden = True
Else
Columns(Num_Col).Hidden = False
End If
Next
Range(« B6:AF13 »).ClearContents
End Sub

J'ai alors modifié par ceci

Sub Masquer_Jour()
Dim Num_Col As Long
For Num_Col = 30 To 32
If Month(Cells(6, Num_Col)) <> Cells(1, 1) Then
Columns(Num_Col).Hidden = True
Else
Columns(Num_Col).Hidden = False
End If
Next
Range(" B6:AF13 ").ClearContents
End Sub

Mais alors la il me supprime plus que ce qu'il ne faut et je n'ai plus mes dates.

Je suis désolé mais je ne suis malheureusement pas capable de résoudre ça :/ Je n'ai pas vraiment de notions en coding et comme je vous dis je me limite pour l'instant aux fonctions simples de excel. Et le temps ne joue pas en ma faveur pour apprendre. C'est pourquoi je fais appel à vous

Je vous mets mon fichier en jointure

Merci !

59pointages-test.xlsx (15.32 Ko)

bonsoir

essaye de remplacer

Range(" B6:AF13 ").ClearContents

par

Range("B6:AF13").ClearContents ' sans les espaces...
'ou autre proposition :
[B6:AF13].ClearContents

edit : il n'y a pas de macro dans ton fichier....

fred

Merci à toi Fred !

Il me met erreur de compilation, utilisation incorrect de la proprieté "range"

:/

Non effectivement j'ai supprimé la macro parce que ça désorganise le fichier, c'est pour que vous puissiez y voir plus clair. Si il faut je ré-up avec le code ?

re

chez moi pas de soucis ....

mais que veux tu faire avec l'effacement des cellules (clearcontents) ????

car avec ta plage initiale B6 AF13 tu supprimes les jours de la semaine et une partie des infos des employé (jusqu'au 7) et les données des employés 8 et 9 ne sont pas effacées....

je penses que tu voulais supprimer les données des employées si c'est cela voir le fichier joint (plage B7:AF15)

l'effacement des données est faite automatiquement lorsque tu change de mois en même temps que cela masque ou pas les dernières colonnes

fred

168pointages-test.xlsm (18.06 Ko)

non enfaite, selon le tuto que j'ai mentionné plus haut, le résultat attendu est simplement la suppression des colonnes en "trop"

Un mois ne compte pas systématiquement 31 jours donc moi il me faut un affichage mensuel avec un tableau qui s'adapte au nombre de jour dans un mois.

Qu'il y ai 28, 30 ou 31 jours il faut que mon tableau s'adapate.

Merci à toi de te pencher sur mon problème c'est super sympa !

EDIT: Je viens d'ouvrir ton fichier et ça fonctionne :/ Je sais pas comment tu as fait :/ Tu as changé quelque chose ?


Dernière petite question, mais pour cette question je dispose d'un peut plus de temps pour chercher moi même. Içi tu m'as vraiment bien dépanné c'était urgent

Pour ma deuxième question, peux-tu me conseiller ? J'aimerais bien par la suite l'adapter et faire une base de donnée. Car içi c'est un affichage simple et unique. Moi j'aimerais que il y ai une base de donnée. Si je veux revenir 2mois en arrière et consulter le pointage d'un employé il faut que je puisse le faire via le fichier. Peux-tu m'orienter sur quoi je devrais me pencher pour la suite ?

Merci à toi !!

SAlut

j'ai seulement attribuer la macro a ta liste déroulante de choix de mois.

par contre tu ne supprime pas les colonnes tu les masques....

par contre je ne vois toujours pas pourquoi tu efface le contenu de la plage !!!!! je te sugere de supprimer/mettre en commentaire la ligne

range("......").clearcontents

et tu verras que cela fonctionne toujours

concernant ta base de données, il faut en dire un peu plus pour peut etre proposer une idée,

archivage sur combien de temps ? une année ? plusieurs? combien ?

combien d'employées 10, 100, plus ?

affichage de l'archive avec possibilités de modifications ou pas ?

a+

fred

Bonjour,

A quoi cela sert de supprimer le range ou de ne pas le faire ? quel différence ?

Concernant la DB, nous sommes max une vingtaines mais probablement plus dans les années à venir. Je pense qu'une mémoire sur 1 an serait pas mal du tout. Possibilité de modification possible oui pourquoi pas.

Tu as une idée ?

Rechercher des sujets similaires à "correction macro"