VbA Xl : Creation onglet par date
Résolu
7808622H
Messages postés
292
Date d'inscription
Statut
Membre
Dernière intervention
-
7808622H Messages postés 292 Date d'inscription Statut Membre Dernière intervention -
7808622H Messages postés 292 Date d'inscription Statut Membre Dernière intervention -
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>
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>
A voir également:
- VbA Xl : Creation onglet par date
- Xl comparator - Télécharger - Tableur
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Dépassement de capacité vba ✓ - Forum Excel
4 réponses
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.
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.
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
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
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
https://www.cjoint.com/?AGDtsUPSu6X
par exemple le 5 Aout qui est un vendredi n'existe pas
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
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
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
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