VbA Xl : Creation onglet par date

Résolu/Fermé
Signaler
Messages postés
292
Date d'inscription
samedi 23 février 2008
Statut
Membre
Dernière intervention
19 mai 2018
-
Messages postés
292
Date d'inscription
samedi 23 février 2008
Statut
Membre
Dernière intervention
19 mai 2018
-
Bonjour


Je cherche une petite macro pour générer des onglets dans le même classeur excel en fonction des jours de la semaine

https://www.cjoint.com/?AGCsHqsAWCU


J'ai une page Données, dans laquelle j'indiquerai les dates ( les jours restant fixes, j'adapterai en fontion du jour de debut du mois pour caler les dates)

Il faudrait que la macro créée un onglet par date, pour les lundis, mardi, mercredis, jeudis, vendredis.

Seuls ces onglets seraient présents ( les onglets des samedis et dimanches ne doivent pas apparaitre)

Dans chaque onglet créés, la feuille Type serait collée.


Quelqu'un aurait il un petit code qui pourrait me faciliter la vie


Merci d'avance a ceux qui pourront se pencher sur ce petit problème

Attention je sais que le code Vba peut avoir des probleme de compatibilité avec Excel 2002 ( c est le logiciel que nous utilisons)

Bonne journée



<config>Windows xp / Excel 2002>

4 réponses

Messages postés
1505
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
149
Bonjour,

Voici ta demande :

https://www.cjoint.com/?0GDkmDZhjqg

pour que ca fonctionne correctement, dans ta feuille données, mets le premier jour du mois voulu.
Ta feuille données fonctionne avec des formules.

Pour créer les onglets, clique sur le bouton.
0
Messages postés
292
Date d'inscription
samedi 23 février 2008
Statut
Membre
Dernière intervention
19 mai 2018
3
Bonjour Mélanie1324

Génial pour le début

juste un souci lorsque je tente de mettre le 1er jour du mois 01/08/2011 par exemple je me retrouve avec des " Créer " en colonne C qui ne correspondant pas a ce que je souhaite. en effet au lieu de me créer les jour du Lundi au Vendredi en onglet il me créé du Dimanche au Jeudi

Petit detail technique supplémentaire si c'est possible, pense tu qu'il est possible de mettre les onglets dans le bon ordre , chronologique du 1 au 30/31 et non pas l'inverse ?


Je te remercie en tout cas pour ta rapidité, c'est sympa de te pencher sur mon probleme
0
Messages postés
292
Date d'inscription
samedi 23 février 2008
Statut
Membre
Dernière intervention
19 mai 2018
3
PS j'avais oublié , voila le rendu du fichier lorsque je l'utilise brut tel que tu me l'as envoyé

https://www.cjoint.com/?AGDtsUPSu6X

par exemple le 5 Aout qui est un vendredi n'existe pas
0
Messages postés
292
Date d'inscription
samedi 23 février 2008
Statut
Membre
Dernière intervention
19 mai 2018
3
Bonjour

bon j'ai palié au probleme des jours qui ne correspondaient pas en passant par une formule SI

=SI(A4=2;"Créer";SI(A4=3;"Créer";SI(A4=4;"Créer";SI(A4=5;"Créer";SI(A4=6;"Créer";""))))) en remplacement de la formule de la colonne C


Il ne me reste plus que le classement des onglet dans le code qu'il me faudrait en ordre chronologique de 1 a 30/31 au lieu de l'inverse


si au vu du code du fichier qui est ci dessous, quelqu'un peut m'aider pour reclasser ces onglets

https://www.cjoint.com/?AGEoyGRT1qD

Merci d'avance

Rappel le fichier fnctionnera sur Excel 2002 donc certains codes ne seront pas valable ( encienne version de Vba)

Je testerai deja le code présent lundi au bureau sur ma version " dinosore" poru voir si cela marche
0
Messages postés
292
Date d'inscription
samedi 23 février 2008
Statut
Membre
Dernière intervention
19 mai 2018
3
Et voilou j'ai trouvé en creusant dans le forum


J'ai repris le code de Mélanie

en l'appelant creation pour la partie creation
et ajouter une partie tri, que j'ai trouvé sur le forum

Et voilou si ca peut resservir a quelqu'un pour la suite

'Lancement par bouton des deux actions Creation et Tri des onglet par ordre croissant
Private Sub CommandButton1_Click()

Call Creation
Call TrierOnglets

End Sub

-------------------------------------------
' Creation des onglets en fonction de la date
Sub Creation()
i = 4
Do While Sheets("données").Cells(i, 1) <> ""
If Sheets("données").Cells(i, 3) <> "" Then
Sheets("Feuille Type").Copy After:=Sheets(2)
ActiveSheet.Name = Left(Sheets("données").Cells(i, 2), 2)
End If
i = i + 1
Loop

End Sub

----------------------------------------------------
'Tri des onglet par ordre croissant au lieu de l ordre decroissant fait pas le codre CREATIION
Sub TrierOnglets()

Dim Boucle As Integer, Compteur As Integer

For Boucle = 1 To Sheets.Count
If Sheets(Boucle).Visible = True Then
For Compteur = 1 To (Boucle - 1)
If Sheets(Compteur).Visible = True Then
If (UCase(Sheets(Boucle).Name) < UCase(Sheets(Compteur).Name)) Then
Sheets(Boucle).Move before:=Sheets(Compteur)
Exit For
End If
End If
Next Compteur
End If
Next Boucle
End Sub


Merci beaucoup a Mélanie et a ceux qui aurait éventuellement tenté de jeter un oeil,
bon W E et ou vacances pour ceux qui y sont


0
Messages postés
2967
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
897
Salut le forum

Pour éviter une macro de tri de feuilles

Remplace
Sheets("Feuille Type").Copy After:=Sheets(2)
par
Sheets("Feuille Type").Copy After:=Sheets(Sheets.Count)

Mytå
0
Messages postés
292
Date d'inscription
samedi 23 février 2008
Statut
Membre
Dernière intervention
19 mai 2018
3
cool merci
0