Bonjour le groupe,
je reviens vers vous pour tacher d'améliorer le code suivant:
dans un classeur pour créer des onglets d'après une sélection j'ai mis
le code suivant:
sub creationonglet()
ActiveCell.CurrentRegion.Select
Dim Tableau() As String
ReDim Tableau ( 1 to ActiveCell.CurrentRegion.Count)
For Ctr=1 To ActiveCell.CurrentRegion.Count
Tableau(Ctr)¬tiveCell.CurrentRegion(Ctr)
Next
For Ctr=1 To ActiveCell.CurrentRegion.Count
Sheets.Add,Sheets(Sheets.Count)
Sheets(Sheets.Count).Name=Tableau(Ctr)
Next
End Sub
l'idée est la suivante:je veux dans un classeur pour chaque mois créer
un onglet par jour:pour ce faire, je mets la date du premier du mois,
je tire la date jusqu'au bout du mois,je transforme les cellules date
en texte (en passant par word, je ne sais pas si il y a plus
simple?)et puis finalement j'applique le code ci dessus à ma sélection
de manière à créer mon classeur
Je voudrais
1) mettre ce code en macro complémentaire et cela une fois fait le
relier à un bouton sur la barre d'outils
2)éviter de passer par word pour générer les dates en format texte
3)mettre chaque semaine(groupe d'onglet) dans une couleur différente
4)générer une feuille récap en début de classeur avec des liens
hypertexte pointant vers chaque onglet(je vois comment le faire mais
pas comment l'intégrer en vba dans mon bout de code....)
Par avance merci, tout ceci est dans le but de simplifier la création
d'un nouveau classeur pour une tierce personne sans qu'elle ait à
passer par l'éditeur VBA.
Chalo
Bonjour le groupe,
je reviens vers vous pour tacher d'améliorer le code suivant:
dans un classeur pour créer des onglets d'après une sélection j'ai mis
le code suivant:
sub creationonglet()
ActiveCell.CurrentRegion.Select
Dim Tableau() As String
ReDim Tableau ( 1 to ActiveCell.CurrentRegion.Count)
For Ctr=1 To ActiveCell.CurrentRegion.Count
Tableau(Ctr)=ActiveCell.CurrentRegion(Ctr)
Next
For Ctr=1 To ActiveCell.CurrentRegion.Count
Sheets.Add,Sheets(Sheets.Count)
Sheets(Sheets.Count).Name=Tableau(Ctr)
Next
End Sub
l'idée est la suivante:je veux dans un classeur pour chaque mois créer
un onglet par jour:pour ce faire, je mets la date du premier du mois,
je tire la date jusqu'au bout du mois,je transforme les cellules date
en texte (en passant par word, je ne sais pas si il y a plus
simple?)et puis finalement j'applique le code ci dessus à ma sélection
de manière à créer mon classeur
Je voudrais
1) mettre ce code en macro complémentaire et cela une fois fait le
relier à un bouton sur la barre d'outils
2)éviter de passer par word pour générer les dates en format texte
3)mettre chaque semaine(groupe d'onglet) dans une couleur différente
4)générer une feuille récap en début de classeur avec des liens
hypertexte pointant vers chaque onglet(je vois comment le faire mais
pas comment l'intégrer en vba dans mon bout de code....)
Par avance merci, tout ceci est dans le but de simplifier la création
d'un nouveau classeur pour une tierce personne sans qu'elle ait à
passer par l'éditeur VBA.
Chalo
Bonjour le groupe,
je reviens vers vous pour tacher d'améliorer le code suivant:
dans un classeur pour créer des onglets d'après une sélection j'ai mis
le code suivant:
sub creationonglet()
ActiveCell.CurrentRegion.Select
Dim Tableau() As String
ReDim Tableau ( 1 to ActiveCell.CurrentRegion.Count)
For Ctr=1 To ActiveCell.CurrentRegion.Count
Tableau(Ctr)¬tiveCell.CurrentRegion(Ctr)
Next
For Ctr=1 To ActiveCell.CurrentRegion.Count
Sheets.Add,Sheets(Sheets.Count)
Sheets(Sheets.Count).Name=Tableau(Ctr)
Next
End Sub
l'idée est la suivante:je veux dans un classeur pour chaque mois créer
un onglet par jour:pour ce faire, je mets la date du premier du mois,
je tire la date jusqu'au bout du mois,je transforme les cellules date
en texte (en passant par word, je ne sais pas si il y a plus
simple?)et puis finalement j'applique le code ci dessus à ma sélection
de manière à créer mon classeur
Je voudrais
1) mettre ce code en macro complémentaire et cela une fois fait le
relier à un bouton sur la barre d'outils
2)éviter de passer par word pour générer les dates en format texte
3)mettre chaque semaine(groupe d'onglet) dans une couleur différente
4)générer une feuille récap en début de classeur avec des liens
hypertexte pointant vers chaque onglet(je vois comment le faire mais
pas comment l'intégrer en vba dans mon bout de code....)
Par avance merci, tout ceci est dans le but de simplifier la création
d'un nouveau classeur pour une tierce personne sans qu'elle ait à
passer par l'éditeur VBA.
Chalo
Bonjour,
Sub CreeOngletsJourMois()
m = Month(Date)
a = Year(Date)
Dim d As Date
For d = DateSerial(a, m, 1) To DateSerial(a, m + 1, 0)
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = Format(d, "ddd dd-mm-yyyy")
ActiveSheet.Tab.ColorIndex = NoSemaine(d)
Next d
Liens
End Sub
Function NoSemaine(MyDate As Date) As Integer
NoSemaine = Format(MyDate, "ww", vbMonday, vbFirstFourDays)
If NoSemaine > 52 Then
If Format(MyDate + 7, "ww", vbMonday, vbFirstFourDays) = 2 Then
NoSemaine = 1
End If
End Function
Sub Liens()
Sheets(1).Select
Range("B5").Select
Range(ActiveCell, [C65000].End(xlUp)).ClearContents
For i = 2 To Sheets.Count
nf = Sheets(i).Name
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="",
SubAddress:="'" & _
nf & "'" & "!A1", TextToDisplay:=nf
ActiveCell.Offset(1, 0).Select
Next i
End Sub
JBhttp://boisgontierjacques.free.fr
On 25 sep, 11:57, chalo wrote:Bonjour le groupe,
je reviens vers vous pour tacher d'améliorer le code suivant:
dans un classeur pour créer des onglets d'après une sélection j'a i mis
le code suivant:
sub creationonglet()
ActiveCell.CurrentRegion.Select
Dim Tableau() As String
ReDim Tableau ( 1 to ActiveCell.CurrentRegion.Count)
For Ctr=1 To ActiveCell.CurrentRegion.Count
Tableau(Ctr)¬tiveCell.CurrentRegion(Ctr)
Next
For Ctr=1 To ActiveCell.CurrentRegion.Count
Sheets.Add,Sheets(Sheets.Count)
Sheets(Sheets.Count).Name=Tableau(Ctr)
Next
End Sub
l'idée est la suivante:je veux dans un classeur pour chaque mois cr éer
un onglet par jour:pour ce faire, je mets la date du premier du mois,
je tire la date jusqu'au bout du mois,je transforme les cellules date
en texte (en passant par word, je ne sais pas si il y a plus
simple?)et puis finalement j'applique le code ci dessus à ma sélect ion
de manière à créer mon classeur
Je voudrais
1) mettre ce code en macro complémentaire et cela une fois fait le
relier à un bouton sur la barre d'outils
2)éviter de passer par word pour générer les dates en format texte
3)mettre chaque semaine(groupe d'onglet) dans une couleur différente
4)générer une feuille récap en début de classeur avec des liens
hypertexte pointant vers chaque onglet(je vois comment le faire mais
pas comment l'intégrer en vba dans mon bout de code....)
Par avance merci, tout ceci est dans le but de simplifier la création
d'un nouveau classeur pour une tierce personne sans qu'elle ait à
passer par l'éditeur VBA.
Chalo- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Sub CreeOngletsJourMois()
m = Month(Date)
a = Year(Date)
Dim d As Date
For d = DateSerial(a, m, 1) To DateSerial(a, m + 1, 0)
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = Format(d, "ddd dd-mm-yyyy")
ActiveSheet.Tab.ColorIndex = NoSemaine(d)
Next d
Liens
End Sub
Function NoSemaine(MyDate As Date) As Integer
NoSemaine = Format(MyDate, "ww", vbMonday, vbFirstFourDays)
If NoSemaine > 52 Then
If Format(MyDate + 7, "ww", vbMonday, vbFirstFourDays) = 2 Then
NoSemaine = 1
End If
End Function
Sub Liens()
Sheets(1).Select
Range("B5").Select
Range(ActiveCell, [C65000].End(xlUp)).ClearContents
For i = 2 To Sheets.Count
nf = Sheets(i).Name
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="",
SubAddress:="'" & _
nf & "'" & "!A1", TextToDisplay:=nf
ActiveCell.Offset(1, 0).Select
Next i
End Sub
JBhttp://boisgontierjacques.free.fr
On 25 sep, 11:57, chalo <thegreatch...@gmail.com> wrote:
Bonjour le groupe,
je reviens vers vous pour tacher d'améliorer le code suivant:
dans un classeur pour créer des onglets d'après une sélection j'a i mis
le code suivant:
sub creationonglet()
ActiveCell.CurrentRegion.Select
Dim Tableau() As String
ReDim Tableau ( 1 to ActiveCell.CurrentRegion.Count)
For Ctr=1 To ActiveCell.CurrentRegion.Count
Tableau(Ctr)=ActiveCell.CurrentRegion(Ctr)
Next
For Ctr=1 To ActiveCell.CurrentRegion.Count
Sheets.Add,Sheets(Sheets.Count)
Sheets(Sheets.Count).Name=Tableau(Ctr)
Next
End Sub
l'idée est la suivante:je veux dans un classeur pour chaque mois cr éer
un onglet par jour:pour ce faire, je mets la date du premier du mois,
je tire la date jusqu'au bout du mois,je transforme les cellules date
en texte (en passant par word, je ne sais pas si il y a plus
simple?)et puis finalement j'applique le code ci dessus à ma sélect ion
de manière à créer mon classeur
Je voudrais
1) mettre ce code en macro complémentaire et cela une fois fait le
relier à un bouton sur la barre d'outils
2)éviter de passer par word pour générer les dates en format texte
3)mettre chaque semaine(groupe d'onglet) dans une couleur différente
4)générer une feuille récap en début de classeur avec des liens
hypertexte pointant vers chaque onglet(je vois comment le faire mais
pas comment l'intégrer en vba dans mon bout de code....)
Par avance merci, tout ceci est dans le but de simplifier la création
d'un nouveau classeur pour une tierce personne sans qu'elle ait à
passer par l'éditeur VBA.
Chalo- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Sub CreeOngletsJourMois()
m = Month(Date)
a = Year(Date)
Dim d As Date
For d = DateSerial(a, m, 1) To DateSerial(a, m + 1, 0)
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = Format(d, "ddd dd-mm-yyyy")
ActiveSheet.Tab.ColorIndex = NoSemaine(d)
Next d
Liens
End Sub
Function NoSemaine(MyDate As Date) As Integer
NoSemaine = Format(MyDate, "ww", vbMonday, vbFirstFourDays)
If NoSemaine > 52 Then
If Format(MyDate + 7, "ww", vbMonday, vbFirstFourDays) = 2 Then
NoSemaine = 1
End If
End Function
Sub Liens()
Sheets(1).Select
Range("B5").Select
Range(ActiveCell, [C65000].End(xlUp)).ClearContents
For i = 2 To Sheets.Count
nf = Sheets(i).Name
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="",
SubAddress:="'" & _
nf & "'" & "!A1", TextToDisplay:=nf
ActiveCell.Offset(1, 0).Select
Next i
End Sub
JBhttp://boisgontierjacques.free.fr
On 25 sep, 11:57, chalo wrote:Bonjour le groupe,
je reviens vers vous pour tacher d'améliorer le code suivant:
dans un classeur pour créer des onglets d'après une sélection j'a i mis
le code suivant:
sub creationonglet()
ActiveCell.CurrentRegion.Select
Dim Tableau() As String
ReDim Tableau ( 1 to ActiveCell.CurrentRegion.Count)
For Ctr=1 To ActiveCell.CurrentRegion.Count
Tableau(Ctr)¬tiveCell.CurrentRegion(Ctr)
Next
For Ctr=1 To ActiveCell.CurrentRegion.Count
Sheets.Add,Sheets(Sheets.Count)
Sheets(Sheets.Count).Name=Tableau(Ctr)
Next
End Sub
l'idée est la suivante:je veux dans un classeur pour chaque mois cr éer
un onglet par jour:pour ce faire, je mets la date du premier du mois,
je tire la date jusqu'au bout du mois,je transforme les cellules date
en texte (en passant par word, je ne sais pas si il y a plus
simple?)et puis finalement j'applique le code ci dessus à ma sélect ion
de manière à créer mon classeur
Je voudrais
1) mettre ce code en macro complémentaire et cela une fois fait le
relier à un bouton sur la barre d'outils
2)éviter de passer par word pour générer les dates en format texte
3)mettre chaque semaine(groupe d'onglet) dans une couleur différente
4)générer une feuille récap en début de classeur avec des liens
hypertexte pointant vers chaque onglet(je vois comment le faire mais
pas comment l'intégrer en vba dans mon bout de code....)
Par avance merci, tout ceci est dans le but de simplifier la création
d'un nouveau classeur pour une tierce personne sans qu'elle ait à
passer par l'éditeur VBA.
Chalo- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
C'est quand même époustouflant à voir.....
juste une chose si je peux pinailler:y a t il un moyen de changer
manuellemtn la date:objectif:créer le classeur octobre alors que nous
sommes encore en septembre car il s'agit d'enregistrer de façon
prévisionelle des tableaux d'itinéraires de voyages dans les onglets
de sorte qu'il peut être intéressant de créer à l'avance les clas seurs
mensuels;en fait le mieux serait de pouvoir choisr entre a)créer pour
le mois en cours, b)créer pour un mois demandé (par userform par
exemple.)
On 25 sep, 14:08, JB wrote:Bonjour,
Sub CreeOngletsJourMois()
m = Month(Date)
a = Year(Date)
Dim d As Date
For d = DateSerial(a, m, 1) To DateSerial(a, m + 1, 0)
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = Format(d, "ddd dd-mm-yyyy")
ActiveSheet.Tab.ColorIndex = NoSemaine(d)
Next d
Liens
End Sub
Function NoSemaine(MyDate As Date) As Integer
NoSemaine = Format(MyDate, "ww", vbMonday, vbFirstFourDays)
If NoSemaine > 52 Then
If Format(MyDate + 7, "ww", vbMonday, vbFirstFourDays) = 2 Then
NoSemaine = 1
End If
End Function
Sub Liens()
Sheets(1).Select
Range("B5").Select
Range(ActiveCell, [C65000].End(xlUp)).ClearContents
For i = 2 To Sheets.Count
nf = Sheets(i).Name
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="",
SubAddress:="'" & _
nf & "'" & "!A1", TextToDisplay:=nf
ActiveCell.Offset(1, 0).Select
Next i
End Sub
JBhttp://boisgontierjacques.free.fr
On 25 sep, 11:57, chalo wrote:Bonjour le groupe,
je reviens vers vous pour tacher d'améliorer le code suivant:
dans un classeur pour créer des onglets d'après une sélection j 'ai mis
le code suivant:
sub creationonglet()
ActiveCell.CurrentRegion.Select
Dim Tableau() As String
ReDim Tableau ( 1 to ActiveCell.CurrentRegion.Count)
For Ctr=1 To ActiveCell.CurrentRegion.Count
Tableau(Ctr)¬tiveCell.CurrentRegion(Ctr)
Next
For Ctr=1 To ActiveCell.CurrentRegion.Count
Sheets.Add,Sheets(Sheets.Count)
Sheets(Sheets.Count).Name=Tableau(Ctr)
Next
End Sub
l'idée est la suivante:je veux dans un classeur pour chaque mois cr éer
un onglet par jour:pour ce faire, je mets la date du premier du mois,
je tire la date jusqu'au bout du mois,je transforme les cellules date
en texte (en passant par word, je ne sais pas si il y a plus
simple?)et puis finalement j'applique le code ci dessus à ma séle ction
de manière à créer mon classeur
Je voudrais
1) mettre ce code en macro complémentaire et cela une fois fait le
relier à un bouton sur la barre d'outils
2)éviter de passer par word pour générer les dates en format te xte
3)mettre chaque semaine(groupe d'onglet) dans une couleur différente
4)générer une feuille récap en début de classeur avec des lie ns
hypertexte pointant vers chaque onglet(je vois comment le faire mais
pas comment l'intégrer en vba dans mon bout de code....)
Par avance merci, tout ceci est dans le but de simplifier la créati on
d'un nouveau classeur pour une tierce personne sans qu'elle ait à
passer par l'éditeur VBA.
Chalo- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
C'est quand même époustouflant à voir.....
juste une chose si je peux pinailler:y a t il un moyen de changer
manuellemtn la date:objectif:créer le classeur octobre alors que nous
sommes encore en septembre car il s'agit d'enregistrer de façon
prévisionelle des tableaux d'itinéraires de voyages dans les onglets
de sorte qu'il peut être intéressant de créer à l'avance les clas seurs
mensuels;en fait le mieux serait de pouvoir choisr entre a)créer pour
le mois en cours, b)créer pour un mois demandé (par userform par
exemple.)
On 25 sep, 14:08, JB <boisgont...@hotmail.com> wrote:
Bonjour,
Sub CreeOngletsJourMois()
m = Month(Date)
a = Year(Date)
Dim d As Date
For d = DateSerial(a, m, 1) To DateSerial(a, m + 1, 0)
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = Format(d, "ddd dd-mm-yyyy")
ActiveSheet.Tab.ColorIndex = NoSemaine(d)
Next d
Liens
End Sub
Function NoSemaine(MyDate As Date) As Integer
NoSemaine = Format(MyDate, "ww", vbMonday, vbFirstFourDays)
If NoSemaine > 52 Then
If Format(MyDate + 7, "ww", vbMonday, vbFirstFourDays) = 2 Then
NoSemaine = 1
End If
End Function
Sub Liens()
Sheets(1).Select
Range("B5").Select
Range(ActiveCell, [C65000].End(xlUp)).ClearContents
For i = 2 To Sheets.Count
nf = Sheets(i).Name
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="",
SubAddress:="'" & _
nf & "'" & "!A1", TextToDisplay:=nf
ActiveCell.Offset(1, 0).Select
Next i
End Sub
JBhttp://boisgontierjacques.free.fr
On 25 sep, 11:57, chalo <thegreatch...@gmail.com> wrote:
Bonjour le groupe,
je reviens vers vous pour tacher d'améliorer le code suivant:
dans un classeur pour créer des onglets d'après une sélection j 'ai mis
le code suivant:
sub creationonglet()
ActiveCell.CurrentRegion.Select
Dim Tableau() As String
ReDim Tableau ( 1 to ActiveCell.CurrentRegion.Count)
For Ctr=1 To ActiveCell.CurrentRegion.Count
Tableau(Ctr)=ActiveCell.CurrentRegion(Ctr)
Next
For Ctr=1 To ActiveCell.CurrentRegion.Count
Sheets.Add,Sheets(Sheets.Count)
Sheets(Sheets.Count).Name=Tableau(Ctr)
Next
End Sub
l'idée est la suivante:je veux dans un classeur pour chaque mois cr éer
un onglet par jour:pour ce faire, je mets la date du premier du mois,
je tire la date jusqu'au bout du mois,je transforme les cellules date
en texte (en passant par word, je ne sais pas si il y a plus
simple?)et puis finalement j'applique le code ci dessus à ma séle ction
de manière à créer mon classeur
Je voudrais
1) mettre ce code en macro complémentaire et cela une fois fait le
relier à un bouton sur la barre d'outils
2)éviter de passer par word pour générer les dates en format te xte
3)mettre chaque semaine(groupe d'onglet) dans une couleur différente
4)générer une feuille récap en début de classeur avec des lie ns
hypertexte pointant vers chaque onglet(je vois comment le faire mais
pas comment l'intégrer en vba dans mon bout de code....)
Par avance merci, tout ceci est dans le but de simplifier la créati on
d'un nouveau classeur pour une tierce personne sans qu'elle ait à
passer par l'éditeur VBA.
Chalo- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
C'est quand même époustouflant à voir.....
juste une chose si je peux pinailler:y a t il un moyen de changer
manuellemtn la date:objectif:créer le classeur octobre alors que nous
sommes encore en septembre car il s'agit d'enregistrer de façon
prévisionelle des tableaux d'itinéraires de voyages dans les onglets
de sorte qu'il peut être intéressant de créer à l'avance les clas seurs
mensuels;en fait le mieux serait de pouvoir choisr entre a)créer pour
le mois en cours, b)créer pour un mois demandé (par userform par
exemple.)
On 25 sep, 14:08, JB wrote:Bonjour,
Sub CreeOngletsJourMois()
m = Month(Date)
a = Year(Date)
Dim d As Date
For d = DateSerial(a, m, 1) To DateSerial(a, m + 1, 0)
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = Format(d, "ddd dd-mm-yyyy")
ActiveSheet.Tab.ColorIndex = NoSemaine(d)
Next d
Liens
End Sub
Function NoSemaine(MyDate As Date) As Integer
NoSemaine = Format(MyDate, "ww", vbMonday, vbFirstFourDays)
If NoSemaine > 52 Then
If Format(MyDate + 7, "ww", vbMonday, vbFirstFourDays) = 2 Then
NoSemaine = 1
End If
End Function
Sub Liens()
Sheets(1).Select
Range("B5").Select
Range(ActiveCell, [C65000].End(xlUp)).ClearContents
For i = 2 To Sheets.Count
nf = Sheets(i).Name
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="",
SubAddress:="'" & _
nf & "'" & "!A1", TextToDisplay:=nf
ActiveCell.Offset(1, 0).Select
Next i
End Sub
JBhttp://boisgontierjacques.free.fr
On 25 sep, 11:57, chalo wrote:Bonjour le groupe,
je reviens vers vous pour tacher d'améliorer le code suivant:
dans un classeur pour créer des onglets d'après une sélection j 'ai mis
le code suivant:
sub creationonglet()
ActiveCell.CurrentRegion.Select
Dim Tableau() As String
ReDim Tableau ( 1 to ActiveCell.CurrentRegion.Count)
For Ctr=1 To ActiveCell.CurrentRegion.Count
Tableau(Ctr)¬tiveCell.CurrentRegion(Ctr)
Next
For Ctr=1 To ActiveCell.CurrentRegion.Count
Sheets.Add,Sheets(Sheets.Count)
Sheets(Sheets.Count).Name=Tableau(Ctr)
Next
End Sub
l'idée est la suivante:je veux dans un classeur pour chaque mois cr éer
un onglet par jour:pour ce faire, je mets la date du premier du mois,
je tire la date jusqu'au bout du mois,je transforme les cellules date
en texte (en passant par word, je ne sais pas si il y a plus
simple?)et puis finalement j'applique le code ci dessus à ma séle ction
de manière à créer mon classeur
Je voudrais
1) mettre ce code en macro complémentaire et cela une fois fait le
relier à un bouton sur la barre d'outils
2)éviter de passer par word pour générer les dates en format te xte
3)mettre chaque semaine(groupe d'onglet) dans une couleur différente
4)générer une feuille récap en début de classeur avec des lie ns
hypertexte pointant vers chaque onglet(je vois comment le faire mais
pas comment l'intégrer en vba dans mon bout de code....)
Par avance merci, tout ceci est dans le but de simplifier la créati on
d'un nouveau classeur pour une tierce personne sans qu'elle ait à
passer par l'éditeur VBA.
Chalo- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
http://cjoint.com/?jzpBr0Z82q
Private Sub b_ok_Click()
CreeOngletsJourMois Me.ComboBox1, Me.ComboBox2
End Sub
Private Sub UserForm_Initialize()
For m = 1 To 12
Me.ComboBox1.AddItem m
Next m
Me.ComboBox1 = Month(Date)
For a = 2007 To 2010
Me.ComboBox2.AddItem a
Next a
Me.ComboBox2 = Year(Date)
End Sub
Sub CreeOngletsJourMois(m,a)
Dim d As Date
For d = DateSerial(a, m, 1) To DateSerial(a, m + 1, 0)
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = Format(d, "ddd dd-mm-yyyy")
ActiveSheet.Tab.ColorIndex = NoSemaine(d)
Next d
Liens
End Sub
Function NoSemaine(MyDate As Date) As Integer
NoSemaine = Format(MyDate, "ww", vbMonday, vbFirstFourDays)
If NoSemaine > 52 Then
If Format(MyDate + 7, "ww", vbMonday, vbFirstFourDays) = 2 Then
NoSemaine = 1
End If
End Function
Sub Liens()
Sheets(1).Select
Range("B5").Select
Range(ActiveCell, [C65000].End(xlUp)).ClearContents
For i = 2 To Sheets.Count
nf = Sheets(i).Name
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="",
SubAddress:="'" & _
nf & "'" & "!A1", TextToDisplay:=nf
ActiveCell.Offset(1, 0).Select
Next i
End Sub
JB
On 25 sep, 15:07, chalo wrote:C'est quand même époustouflant à voir.....
juste une chose si je peux pinailler:y a t il un moyen de changer
manuellemtn la date:objectif:créer le classeur octobre alors que nous
sommes encore en septembre car il s'agit d'enregistrer de façon
prévisionelle des tableaux d'itinéraires de voyages dans les onglets
de sorte qu'il peut être intéressant de créer à l'avance les cl asseurs
mensuels;en fait le mieux serait de pouvoir choisr entre a)créer pour
le mois en cours, b)créer pour un mois demandé (par userform par
exemple.)
On 25 sep, 14:08, JB wrote:Bonjour,
Sub CreeOngletsJourMois()
m = Month(Date)
a = Year(Date)
Dim d As Date
For d = DateSerial(a, m, 1) To DateSerial(a, m + 1, 0)
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = Format(d, "ddd dd-mm-yyyy")
ActiveSheet.Tab.ColorIndex = NoSemaine(d)
Next d
Liens
End Sub
Function NoSemaine(MyDate As Date) As Integer
NoSemaine = Format(MyDate, "ww", vbMonday, vbFirstFourDays)
If NoSemaine > 52 Then
If Format(MyDate + 7, "ww", vbMonday, vbFirstFourDays) = 2 Then
NoSemaine = 1
End If
End Function
Sub Liens()
Sheets(1).Select
Range("B5").Select
Range(ActiveCell, [C65000].End(xlUp)).ClearContents
For i = 2 To Sheets.Count
nf = Sheets(i).Name
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="",
SubAddress:="'" & _
nf & "'" & "!A1", TextToDisplay:=nf
ActiveCell.Offset(1, 0).Select
Next i
End Sub
JBhttp://boisgontierjacques.free.fr
On 25 sep, 11:57, chalo wrote:Bonjour le groupe,
je reviens vers vous pour tacher d'améliorer le code suivant:
dans un classeur pour créer des onglets d'après une sélection j'ai mis
le code suivant:
sub creationonglet()
ActiveCell.CurrentRegion.Select
Dim Tableau() As String
ReDim Tableau ( 1 to ActiveCell.CurrentRegion.Count)
For Ctr=1 To ActiveCell.CurrentRegion.Count
Tableau(Ctr)¬tiveCell.CurrentRegion(Ctr)
Next
For Ctr=1 To ActiveCell.CurrentRegion.Count
Sheets.Add,Sheets(Sheets.Count)
Sheets(Sheets.Count).Name=Tableau(Ctr)
Next
End Sub
l'idée est la suivante:je veux dans un classeur pour chaque mois créer
un onglet par jour:pour ce faire, je mets la date du premier du moi s,
je tire la date jusqu'au bout du mois,je transforme les cellules da te
en texte (en passant par word, je ne sais pas si il y a plus
simple?)et puis finalement j'applique le code ci dessus à ma sé lection
de manière à créer mon classeur
Je voudrais
1) mettre ce code en macro complémentaire et cela une fois fait le
relier à un bouton sur la barre d'outils
2)éviter de passer par word pour générer les dates en format texte
3)mettre chaque semaine(groupe d'onglet) dans une couleur différe nte
4)générer une feuille récap en début de classeur avec des l iens
hypertexte pointant vers chaque onglet(je vois comment le faire mais
pas comment l'intégrer en vba dans mon bout de code....)
Par avance merci, tout ceci est dans le but de simplifier la créa tion
d'un nouveau classeur pour une tierce personne sans qu'elle ait à
passer par l'éditeur VBA.
Chalo- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte d es messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
http://cjoint.com/?jzpBr0Z82q
Private Sub b_ok_Click()
CreeOngletsJourMois Me.ComboBox1, Me.ComboBox2
End Sub
Private Sub UserForm_Initialize()
For m = 1 To 12
Me.ComboBox1.AddItem m
Next m
Me.ComboBox1 = Month(Date)
For a = 2007 To 2010
Me.ComboBox2.AddItem a
Next a
Me.ComboBox2 = Year(Date)
End Sub
Sub CreeOngletsJourMois(m,a)
Dim d As Date
For d = DateSerial(a, m, 1) To DateSerial(a, m + 1, 0)
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = Format(d, "ddd dd-mm-yyyy")
ActiveSheet.Tab.ColorIndex = NoSemaine(d)
Next d
Liens
End Sub
Function NoSemaine(MyDate As Date) As Integer
NoSemaine = Format(MyDate, "ww", vbMonday, vbFirstFourDays)
If NoSemaine > 52 Then
If Format(MyDate + 7, "ww", vbMonday, vbFirstFourDays) = 2 Then
NoSemaine = 1
End If
End Function
Sub Liens()
Sheets(1).Select
Range("B5").Select
Range(ActiveCell, [C65000].End(xlUp)).ClearContents
For i = 2 To Sheets.Count
nf = Sheets(i).Name
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="",
SubAddress:="'" & _
nf & "'" & "!A1", TextToDisplay:=nf
ActiveCell.Offset(1, 0).Select
Next i
End Sub
JB
On 25 sep, 15:07, chalo <thegreatch...@gmail.com> wrote:
C'est quand même époustouflant à voir.....
juste une chose si je peux pinailler:y a t il un moyen de changer
manuellemtn la date:objectif:créer le classeur octobre alors que nous
sommes encore en septembre car il s'agit d'enregistrer de façon
prévisionelle des tableaux d'itinéraires de voyages dans les onglets
de sorte qu'il peut être intéressant de créer à l'avance les cl asseurs
mensuels;en fait le mieux serait de pouvoir choisr entre a)créer pour
le mois en cours, b)créer pour un mois demandé (par userform par
exemple.)
On 25 sep, 14:08, JB <boisgont...@hotmail.com> wrote:
Bonjour,
Sub CreeOngletsJourMois()
m = Month(Date)
a = Year(Date)
Dim d As Date
For d = DateSerial(a, m, 1) To DateSerial(a, m + 1, 0)
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = Format(d, "ddd dd-mm-yyyy")
ActiveSheet.Tab.ColorIndex = NoSemaine(d)
Next d
Liens
End Sub
Function NoSemaine(MyDate As Date) As Integer
NoSemaine = Format(MyDate, "ww", vbMonday, vbFirstFourDays)
If NoSemaine > 52 Then
If Format(MyDate + 7, "ww", vbMonday, vbFirstFourDays) = 2 Then
NoSemaine = 1
End If
End Function
Sub Liens()
Sheets(1).Select
Range("B5").Select
Range(ActiveCell, [C65000].End(xlUp)).ClearContents
For i = 2 To Sheets.Count
nf = Sheets(i).Name
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="",
SubAddress:="'" & _
nf & "'" & "!A1", TextToDisplay:=nf
ActiveCell.Offset(1, 0).Select
Next i
End Sub
JBhttp://boisgontierjacques.free.fr
On 25 sep, 11:57, chalo <thegreatch...@gmail.com> wrote:
Bonjour le groupe,
je reviens vers vous pour tacher d'améliorer le code suivant:
dans un classeur pour créer des onglets d'après une sélection j'ai mis
le code suivant:
sub creationonglet()
ActiveCell.CurrentRegion.Select
Dim Tableau() As String
ReDim Tableau ( 1 to ActiveCell.CurrentRegion.Count)
For Ctr=1 To ActiveCell.CurrentRegion.Count
Tableau(Ctr)=ActiveCell.CurrentRegion(Ctr)
Next
For Ctr=1 To ActiveCell.CurrentRegion.Count
Sheets.Add,Sheets(Sheets.Count)
Sheets(Sheets.Count).Name=Tableau(Ctr)
Next
End Sub
l'idée est la suivante:je veux dans un classeur pour chaque mois créer
un onglet par jour:pour ce faire, je mets la date du premier du moi s,
je tire la date jusqu'au bout du mois,je transforme les cellules da te
en texte (en passant par word, je ne sais pas si il y a plus
simple?)et puis finalement j'applique le code ci dessus à ma sé lection
de manière à créer mon classeur
Je voudrais
1) mettre ce code en macro complémentaire et cela une fois fait le
relier à un bouton sur la barre d'outils
2)éviter de passer par word pour générer les dates en format texte
3)mettre chaque semaine(groupe d'onglet) dans une couleur différe nte
4)générer une feuille récap en début de classeur avec des l iens
hypertexte pointant vers chaque onglet(je vois comment le faire mais
pas comment l'intégrer en vba dans mon bout de code....)
Par avance merci, tout ceci est dans le but de simplifier la créa tion
d'un nouveau classeur pour une tierce personne sans qu'elle ait à
passer par l'éditeur VBA.
Chalo- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte d es messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
http://cjoint.com/?jzpBr0Z82q
Private Sub b_ok_Click()
CreeOngletsJourMois Me.ComboBox1, Me.ComboBox2
End Sub
Private Sub UserForm_Initialize()
For m = 1 To 12
Me.ComboBox1.AddItem m
Next m
Me.ComboBox1 = Month(Date)
For a = 2007 To 2010
Me.ComboBox2.AddItem a
Next a
Me.ComboBox2 = Year(Date)
End Sub
Sub CreeOngletsJourMois(m,a)
Dim d As Date
For d = DateSerial(a, m, 1) To DateSerial(a, m + 1, 0)
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = Format(d, "ddd dd-mm-yyyy")
ActiveSheet.Tab.ColorIndex = NoSemaine(d)
Next d
Liens
End Sub
Function NoSemaine(MyDate As Date) As Integer
NoSemaine = Format(MyDate, "ww", vbMonday, vbFirstFourDays)
If NoSemaine > 52 Then
If Format(MyDate + 7, "ww", vbMonday, vbFirstFourDays) = 2 Then
NoSemaine = 1
End If
End Function
Sub Liens()
Sheets(1).Select
Range("B5").Select
Range(ActiveCell, [C65000].End(xlUp)).ClearContents
For i = 2 To Sheets.Count
nf = Sheets(i).Name
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="",
SubAddress:="'" & _
nf & "'" & "!A1", TextToDisplay:=nf
ActiveCell.Offset(1, 0).Select
Next i
End Sub
JB
On 25 sep, 15:07, chalo wrote:C'est quand même époustouflant à voir.....
juste une chose si je peux pinailler:y a t il un moyen de changer
manuellemtn la date:objectif:créer le classeur octobre alors que nous
sommes encore en septembre car il s'agit d'enregistrer de façon
prévisionelle des tableaux d'itinéraires de voyages dans les onglets
de sorte qu'il peut être intéressant de créer à l'avance les cl asseurs
mensuels;en fait le mieux serait de pouvoir choisr entre a)créer pour
le mois en cours, b)créer pour un mois demandé (par userform par
exemple.)
On 25 sep, 14:08, JB wrote:Bonjour,
Sub CreeOngletsJourMois()
m = Month(Date)
a = Year(Date)
Dim d As Date
For d = DateSerial(a, m, 1) To DateSerial(a, m + 1, 0)
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = Format(d, "ddd dd-mm-yyyy")
ActiveSheet.Tab.ColorIndex = NoSemaine(d)
Next d
Liens
End Sub
Function NoSemaine(MyDate As Date) As Integer
NoSemaine = Format(MyDate, "ww", vbMonday, vbFirstFourDays)
If NoSemaine > 52 Then
If Format(MyDate + 7, "ww", vbMonday, vbFirstFourDays) = 2 Then
NoSemaine = 1
End If
End Function
Sub Liens()
Sheets(1).Select
Range("B5").Select
Range(ActiveCell, [C65000].End(xlUp)).ClearContents
For i = 2 To Sheets.Count
nf = Sheets(i).Name
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="",
SubAddress:="'" & _
nf & "'" & "!A1", TextToDisplay:=nf
ActiveCell.Offset(1, 0).Select
Next i
End Sub
JBhttp://boisgontierjacques.free.fr
On 25 sep, 11:57, chalo wrote:Bonjour le groupe,
je reviens vers vous pour tacher d'améliorer le code suivant:
dans un classeur pour créer des onglets d'après une sélection j'ai mis
le code suivant:
sub creationonglet()
ActiveCell.CurrentRegion.Select
Dim Tableau() As String
ReDim Tableau ( 1 to ActiveCell.CurrentRegion.Count)
For Ctr=1 To ActiveCell.CurrentRegion.Count
Tableau(Ctr)¬tiveCell.CurrentRegion(Ctr)
Next
For Ctr=1 To ActiveCell.CurrentRegion.Count
Sheets.Add,Sheets(Sheets.Count)
Sheets(Sheets.Count).Name=Tableau(Ctr)
Next
End Sub
l'idée est la suivante:je veux dans un classeur pour chaque mois créer
un onglet par jour:pour ce faire, je mets la date du premier du moi s,
je tire la date jusqu'au bout du mois,je transforme les cellules da te
en texte (en passant par word, je ne sais pas si il y a plus
simple?)et puis finalement j'applique le code ci dessus à ma sé lection
de manière à créer mon classeur
Je voudrais
1) mettre ce code en macro complémentaire et cela une fois fait le
relier à un bouton sur la barre d'outils
2)éviter de passer par word pour générer les dates en format texte
3)mettre chaque semaine(groupe d'onglet) dans une couleur différe nte
4)générer une feuille récap en début de classeur avec des l iens
hypertexte pointant vers chaque onglet(je vois comment le faire mais
pas comment l'intégrer en vba dans mon bout de code....)
Par avance merci, tout ceci est dans le but de simplifier la créa tion
d'un nouveau classeur pour une tierce personne sans qu'elle ait à
passer par l'éditeur VBA.
Chalo- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte d es messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
http://cjoint.com/?jzpBr0Z82q
Private Sub b_ok_Click()
CreeOngletsJourMois Me.ComboBox1, Me.ComboBox2
End Sub
Private Sub UserForm_Initialize()
For m = 1 To 12
Me.ComboBox1.AddItem m
Next m
Me.ComboBox1 = Month(Date)
For a = 2007 To 2010
Me.ComboBox2.AddItem a
Next a
Me.ComboBox2 = Year(Date)
End Sub
Sub CreeOngletsJourMois(m,a)
Dim d As Date
For d = DateSerial(a, m, 1) To DateSerial(a, m + 1, 0)
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = Format(d, "ddd dd-mm-yyyy")
ActiveSheet.Tab.ColorIndex = NoSemaine(d)
Next d
Liens
End Sub
Function NoSemaine(MyDate As Date) As Integer
NoSemaine = Format(MyDate, "ww", vbMonday, vbFirstFourDays)
If NoSemaine > 52 Then
If Format(MyDate + 7, "ww", vbMonday, vbFirstFourDays) = 2 Then
NoSemaine = 1
End If
End Function
Sub Liens()
Sheets(1).Select
Range("B5").Select
Range(ActiveCell, [C65000].End(xlUp)).ClearContents
For i = 2 To Sheets.Count
nf = Sheets(i).Name
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="",
SubAddress:="'" & _
nf & "'" & "!A1", TextToDisplay:=nf
ActiveCell.Offset(1, 0).Select
Next i
End Sub
JB
On 25 sep, 15:07, chalo wrote:C'est quand même époustouflant à voir.....
juste une chose si je peux pinailler:y a t il un moyen de changer
manuellemtn la date:objectif:créer le classeur octobre alors que nous
sommes encore en septembre car il s'agit d'enregistrer de façon
prévisionelle des tableaux d'itinéraires de voyages dans les onglets
de sorte qu'il peut être intéressant de créer à l'avance les cl asseurs
mensuels;en fait le mieux serait de pouvoir choisr entre a)créer pour
le mois en cours, b)créer pour un mois demandé (par userform par
exemple.)
On 25 sep, 14:08, JB wrote:Bonjour,
Sub CreeOngletsJourMois()
m = Month(Date)
a = Year(Date)
Dim d As Date
For d = DateSerial(a, m, 1) To DateSerial(a, m + 1, 0)
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = Format(d, "ddd dd-mm-yyyy")
ActiveSheet.Tab.ColorIndex = NoSemaine(d)
Next d
Liens
End Sub
Function NoSemaine(MyDate As Date) As Integer
NoSemaine = Format(MyDate, "ww", vbMonday, vbFirstFourDays)
If NoSemaine > 52 Then
If Format(MyDate + 7, "ww", vbMonday, vbFirstFourDays) = 2 Then
NoSemaine = 1
End If
End Function
Sub Liens()
Sheets(1).Select
Range("B5").Select
Range(ActiveCell, [C65000].End(xlUp)).ClearContents
For i = 2 To Sheets.Count
nf = Sheets(i).Name
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="",
SubAddress:="'" & _
nf & "'" & "!A1", TextToDisplay:=nf
ActiveCell.Offset(1, 0).Select
Next i
End Sub
JBhttp://boisgontierjacques.free.fr
On 25 sep, 11:57, chalo wrote:Bonjour le groupe,
je reviens vers vous pour tacher d'améliorer le code suivant:
dans un classeur pour créer des onglets d'après une sélection j'ai mis
le code suivant:
sub creationonglet()
ActiveCell.CurrentRegion.Select
Dim Tableau() As String
ReDim Tableau ( 1 to ActiveCell.CurrentRegion.Count)
For Ctr=1 To ActiveCell.CurrentRegion.Count
Tableau(Ctr)¬tiveCell.CurrentRegion(Ctr)
Next
For Ctr=1 To ActiveCell.CurrentRegion.Count
Sheets.Add,Sheets(Sheets.Count)
Sheets(Sheets.Count).Name=Tableau(Ctr)
Next
End Sub
l'idée est la suivante:je veux dans un classeur pour chaque mois créer
un onglet par jour:pour ce faire, je mets la date du premier du moi s,
je tire la date jusqu'au bout du mois,je transforme les cellules da te
en texte (en passant par word, je ne sais pas si il y a plus
simple?)et puis finalement j'applique le code ci dessus à ma sé lection
de manière à créer mon classeur
Je voudrais
1) mettre ce code en macro complémentaire et cela une fois fait le
relier à un bouton sur la barre d'outils
2)éviter de passer par word pour générer les dates en format texte
3)mettre chaque semaine(groupe d'onglet) dans une couleur différe nte
4)générer une feuille récap en début de classeur avec des l iens
hypertexte pointant vers chaque onglet(je vois comment le faire mais
pas comment l'intégrer en vba dans mon bout de code....)
Par avance merci, tout ceci est dans le but de simplifier la créa tion
d'un nouveau classeur pour une tierce personne sans qu'elle ait à
passer par l'éditeur VBA.
Chalo-
http://cjoint.com/?jzpBr0Z82q
Private Sub b_ok_Click()
CreeOngletsJourMois Me.ComboBox1, Me.ComboBox2
End Sub
Private Sub UserForm_Initialize()
For m = 1 To 12
Me.ComboBox1.AddItem m
Next m
Me.ComboBox1 = Month(Date)
For a = 2007 To 2010
Me.ComboBox2.AddItem a
Next a
Me.ComboBox2 = Year(Date)
End Sub
Sub CreeOngletsJourMois(m,a)
Dim d As Date
For d = DateSerial(a, m, 1) To DateSerial(a, m + 1, 0)
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = Format(d, "ddd dd-mm-yyyy")
ActiveSheet.Tab.ColorIndex = NoSemaine(d)
Next d
Liens
End Sub
Function NoSemaine(MyDate As Date) As Integer
NoSemaine = Format(MyDate, "ww", vbMonday, vbFirstFourDays)
If NoSemaine > 52 Then
If Format(MyDate + 7, "ww", vbMonday, vbFirstFourDays) = 2 Then
NoSemaine = 1
End If
End Function
Sub Liens()
Sheets(1).Select
Range("B5").Select
Range(ActiveCell, [C65000].End(xlUp)).ClearContents
For i = 2 To Sheets.Count
nf = Sheets(i).Name
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="",
SubAddress:="'" & _
nf & "'" & "!A1", TextToDisplay:=nf
ActiveCell.Offset(1, 0).Select
Next i
End Sub
JB
On 25 sep, 15:07, chalo <thegreatch...@gmail.com> wrote:
C'est quand même époustouflant à voir.....
juste une chose si je peux pinailler:y a t il un moyen de changer
manuellemtn la date:objectif:créer le classeur octobre alors que nous
sommes encore en septembre car il s'agit d'enregistrer de façon
prévisionelle des tableaux d'itinéraires de voyages dans les onglets
de sorte qu'il peut être intéressant de créer à l'avance les cl asseurs
mensuels;en fait le mieux serait de pouvoir choisr entre a)créer pour
le mois en cours, b)créer pour un mois demandé (par userform par
exemple.)
On 25 sep, 14:08, JB <boisgont...@hotmail.com> wrote:
Bonjour,
Sub CreeOngletsJourMois()
m = Month(Date)
a = Year(Date)
Dim d As Date
For d = DateSerial(a, m, 1) To DateSerial(a, m + 1, 0)
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = Format(d, "ddd dd-mm-yyyy")
ActiveSheet.Tab.ColorIndex = NoSemaine(d)
Next d
Liens
End Sub
Function NoSemaine(MyDate As Date) As Integer
NoSemaine = Format(MyDate, "ww", vbMonday, vbFirstFourDays)
If NoSemaine > 52 Then
If Format(MyDate + 7, "ww", vbMonday, vbFirstFourDays) = 2 Then
NoSemaine = 1
End If
End Function
Sub Liens()
Sheets(1).Select
Range("B5").Select
Range(ActiveCell, [C65000].End(xlUp)).ClearContents
For i = 2 To Sheets.Count
nf = Sheets(i).Name
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="",
SubAddress:="'" & _
nf & "'" & "!A1", TextToDisplay:=nf
ActiveCell.Offset(1, 0).Select
Next i
End Sub
JBhttp://boisgontierjacques.free.fr
On 25 sep, 11:57, chalo <thegreatch...@gmail.com> wrote:
Bonjour le groupe,
je reviens vers vous pour tacher d'améliorer le code suivant:
dans un classeur pour créer des onglets d'après une sélection j'ai mis
le code suivant:
sub creationonglet()
ActiveCell.CurrentRegion.Select
Dim Tableau() As String
ReDim Tableau ( 1 to ActiveCell.CurrentRegion.Count)
For Ctr=1 To ActiveCell.CurrentRegion.Count
Tableau(Ctr)=ActiveCell.CurrentRegion(Ctr)
Next
For Ctr=1 To ActiveCell.CurrentRegion.Count
Sheets.Add,Sheets(Sheets.Count)
Sheets(Sheets.Count).Name=Tableau(Ctr)
Next
End Sub
l'idée est la suivante:je veux dans un classeur pour chaque mois créer
un onglet par jour:pour ce faire, je mets la date du premier du moi s,
je tire la date jusqu'au bout du mois,je transforme les cellules da te
en texte (en passant par word, je ne sais pas si il y a plus
simple?)et puis finalement j'applique le code ci dessus à ma sé lection
de manière à créer mon classeur
Je voudrais
1) mettre ce code en macro complémentaire et cela une fois fait le
relier à un bouton sur la barre d'outils
2)éviter de passer par word pour générer les dates en format texte
3)mettre chaque semaine(groupe d'onglet) dans une couleur différe nte
4)générer une feuille récap en début de classeur avec des l iens
hypertexte pointant vers chaque onglet(je vois comment le faire mais
pas comment l'intégrer en vba dans mon bout de code....)
Par avance merci, tout ceci est dans le but de simplifier la créa tion
d'un nouveau classeur pour une tierce personne sans qu'elle ait à
passer par l'éditeur VBA.
Chalo-
http://cjoint.com/?jzpBr0Z82q
Private Sub b_ok_Click()
CreeOngletsJourMois Me.ComboBox1, Me.ComboBox2
End Sub
Private Sub UserForm_Initialize()
For m = 1 To 12
Me.ComboBox1.AddItem m
Next m
Me.ComboBox1 = Month(Date)
For a = 2007 To 2010
Me.ComboBox2.AddItem a
Next a
Me.ComboBox2 = Year(Date)
End Sub
Sub CreeOngletsJourMois(m,a)
Dim d As Date
For d = DateSerial(a, m, 1) To DateSerial(a, m + 1, 0)
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = Format(d, "ddd dd-mm-yyyy")
ActiveSheet.Tab.ColorIndex = NoSemaine(d)
Next d
Liens
End Sub
Function NoSemaine(MyDate As Date) As Integer
NoSemaine = Format(MyDate, "ww", vbMonday, vbFirstFourDays)
If NoSemaine > 52 Then
If Format(MyDate + 7, "ww", vbMonday, vbFirstFourDays) = 2 Then
NoSemaine = 1
End If
End Function
Sub Liens()
Sheets(1).Select
Range("B5").Select
Range(ActiveCell, [C65000].End(xlUp)).ClearContents
For i = 2 To Sheets.Count
nf = Sheets(i).Name
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="",
SubAddress:="'" & _
nf & "'" & "!A1", TextToDisplay:=nf
ActiveCell.Offset(1, 0).Select
Next i
End Sub
JB
On 25 sep, 15:07, chalo wrote:C'est quand même époustouflant à voir.....
juste une chose si je peux pinailler:y a t il un moyen de changer
manuellemtn la date:objectif:créer le classeur octobre alors que nous
sommes encore en septembre car il s'agit d'enregistrer de façon
prévisionelle des tableaux d'itinéraires de voyages dans les onglets
de sorte qu'il peut être intéressant de créer à l'avance les cl asseurs
mensuels;en fait le mieux serait de pouvoir choisr entre a)créer pour
le mois en cours, b)créer pour un mois demandé (par userform par
exemple.)
On 25 sep, 14:08, JB wrote:Bonjour,
Sub CreeOngletsJourMois()
m = Month(Date)
a = Year(Date)
Dim d As Date
For d = DateSerial(a, m, 1) To DateSerial(a, m + 1, 0)
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = Format(d, "ddd dd-mm-yyyy")
ActiveSheet.Tab.ColorIndex = NoSemaine(d)
Next d
Liens
End Sub
Function NoSemaine(MyDate As Date) As Integer
NoSemaine = Format(MyDate, "ww", vbMonday, vbFirstFourDays)
If NoSemaine > 52 Then
If Format(MyDate + 7, "ww", vbMonday, vbFirstFourDays) = 2 Then
NoSemaine = 1
End If
End Function
Sub Liens()
Sheets(1).Select
Range("B5").Select
Range(ActiveCell, [C65000].End(xlUp)).ClearContents
For i = 2 To Sheets.Count
nf = Sheets(i).Name
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="",
SubAddress:="'" & _
nf & "'" & "!A1", TextToDisplay:=nf
ActiveCell.Offset(1, 0).Select
Next i
End Sub
JBhttp://boisgontierjacques.free.fr
On 25 sep, 11:57, chalo wrote:Bonjour le groupe,
je reviens vers vous pour tacher d'améliorer le code suivant:
dans un classeur pour créer des onglets d'après une sélection j'ai mis
le code suivant:
sub creationonglet()
ActiveCell.CurrentRegion.Select
Dim Tableau() As String
ReDim Tableau ( 1 to ActiveCell.CurrentRegion.Count)
For Ctr=1 To ActiveCell.CurrentRegion.Count
Tableau(Ctr)¬tiveCell.CurrentRegion(Ctr)
Next
For Ctr=1 To ActiveCell.CurrentRegion.Count
Sheets.Add,Sheets(Sheets.Count)
Sheets(Sheets.Count).Name=Tableau(Ctr)
Next
End Sub
l'idée est la suivante:je veux dans un classeur pour chaque mois créer
un onglet par jour:pour ce faire, je mets la date du premier du moi s,
je tire la date jusqu'au bout du mois,je transforme les cellules da te
en texte (en passant par word, je ne sais pas si il y a plus
simple?)et puis finalement j'applique le code ci dessus à ma sé lection
de manière à créer mon classeur
Je voudrais
1) mettre ce code en macro complémentaire et cela une fois fait le
relier à un bouton sur la barre d'outils
2)éviter de passer par word pour générer les dates en format texte
3)mettre chaque semaine(groupe d'onglet) dans une couleur différe nte
4)générer une feuille récap en début de classeur avec des l iens
hypertexte pointant vers chaque onglet(je vois comment le faire mais
pas comment l'intégrer en vba dans mon bout de code....)
Par avance merci, tout ceci est dans le but de simplifier la créa tion
d'un nouveau classeur pour une tierce personne sans qu'elle ait à
passer par l'éditeur VBA.
Chalo-