Claudius91 Posté(e) le 7 septembre Posté(e) le 7 septembre Bonsoir, Après avoir cherché sur internet une solution, je pensais avoir trouvé, mais cela ne marche pas. Mon problème. j'ai des tableaux identiques sur 12 feuilles d'excel, les onglets sont les mois de l'année : Janv, Fev, Mars,......... Je cherche une macro qui selon le mois séléctionne le nombre de cellule correspondant au nombre de jours du mois. Ci-dessous la macro, mais erreur au niveau de la deuxième ligne Sub Macro20() 'Macro20Macro Dim jours As Long Select Case ws.Name Case "Janv", "Mars", "Mai", "juillet""Aout", "Oct", "Dec": jours = 31 Case "Avril", "Juin", "Sept", "Nov: jours = 30" Case "Fev": jours = 28 End Select Dim place As Range Set Plage = ws.Range("B4:B" & (4 + jours - 1)) End Sub
Longaripa Posté(e) le 7 septembre Posté(e) le 7 septembre (modifié) Bonjour @Claudius91 Une suggestion : Remplacer ws par activesheet mettre une virgule entre juillet et aout mettre dim plaGe As Range (pas dim plaCe ..) Sub Macro1() ' ' Macro1 Macro ' Dim jours As Long Select Case ActiveSheet.Name Case "Janv", "Mars", "Mai", "juillet", "Aout", "Oct", "Dec": jours = 31 Case "Avril", "Juin", "Sept", "Nov: jours = 30" Case "Fev": jours = 28 End Select Dim plage As Range Set plage = ActiveSheet.Range("B4:B" & (4 + jours - 1)) plage.Select End Sub Modifié le 7 septembre par Longaripa
Claudius91 Posté(e) le 8 septembre Auteur Posté(e) le 8 septembre Bonjour Longaripa Problème , ne fonctionne pas, en utilisant pas à pas détaillé, la ligne " Dim jours As Long " n'est pas utilisée, de Macro2Macro, directement à Select Case ActiveSheet.Name Sub Macro2() 'Macro2Macro ' ' ' Dim jours As Long Select Case ActiveSheet.Name Case "Janv", "Mars", "Mai", "juillet", "Aout", "Oct", "Dec": jours = 31 Case "Avril", "Juin", "Sept", "Nov: jours = 30" Case "Fev": jours = 28 End Select Dim plage As Range Set plage = ActiveSheet.Range("B4:B" & (4 + jours - 1)) plage.Select End Sub
Longaripa Posté(e) le 8 septembre Posté(e) le 8 septembre Bonjour Mais si, ca fonctionne. Les instructions Dim sont exécutées au départ de la procédure, et non pas dans le déroulement. Dans le menu, cliquez sur affichage, puis sur variables locales Dans la fenêtre, on voir que jours et plage sont bien définies au départ.
Claudius91 Posté(e) le 8 septembre Auteur Posté(e) le 8 septembre Ok, cela fonctionne Mais pas pour les mois de 30 jours Je remarque des guillemets après le chiffre 30. sont-ils nécessaire ? Par contre impossible de les retirer ils reviennent toujours !!
Claudius91 Posté(e) le 8 septembre Auteur Posté(e) le 8 septembre J'ai trouvé. Il manquait les guillemets après Nov. Mis guillemets après Nov, Supprimé ceux après 30 Et tout fonctionne bien Super Merci
Messages recommandés