As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
JK a écrit :Merci pour ta prompte réponse.
J'ai un message d'erreur en lançant ta macro :
"Erreur exécution '9' - L'indice n'appartient pas à la sélection
En cliquant sur "débogage", je suis renvoyé à la ligne
"Worksheets(sh2).Activate" mis en surbrillance jaune.
Dommage mais ce n'est peut-être pas grand'chose.
A +
Jack
"LSteph" a écrit dans le message de groupe de
discussion : Oeun8a$Bonjour JK et Bonne Année (à tous d'ailleurs)
http://cjoint.com/?bblEPOlCf6
Pour quand le lien n'y sera plus:
j'ai ajouté un userform avec liste mode options et multiselect
Voici les révisions effectuées dans le code:
'''''Module1
Public mylist As Range, sh1 As String, sh2 As String
Sub Selimpression()
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" & mylist.Address
UserForm2.Show
End Sub
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call Selimpression
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption = ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''userform2
Private Sub CommandButton1_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
Sheets(sh1).[F1] = .List(i)
Sheets(sh1).PrintOut
End If
Next
End With
Unload Me
End Sub
Private Sub CommandButton2_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
.Selected(i) = Not (.Selected(i))
Next
End With
End Sub
Private Sub UserForm_Initialize()
Dim c As Range
ListBox1.Clear
For Each c In mylist.Cells
ListBox1.AddItem c
Next
End Sub
'lSteph
JK a écrit :Bonjour et bonne année à vous.
Puis-je me permettre une question concernant mon fichier ?
Comment n'imprimer qu'une ou plusieurs feuilles suite au rajout d'un ou
plusieurs noms dans la liste sans avoir à réimprimer toute la liste ?
Merci encore à vous et plus particulièrement à LSteph
Jack
"JK" a écrit dans le message de groupe de
discussion : #Bonsoir et mille mercis.
C'est GÉNIAL !!!!
Cela fonctionne du tonnerre.
Merci pour ton aide précieuse.
Jack
"LSteph" a écrit dans le message de groupe de
discussion :Bonsoir,
Ca fonctionne mais pour tes soucis il me semble
ca vient de tes listes qui obligent à les redéfinir et appliquer la
macro à la bonne feuille, car ce n'est pas controlé.
Voici une variante si le contexte reste semblable:
http://cjoint.com/?mDbsbtZDOr
''''''''''''''''''''''''''''''''''''
'''''Thisworkbook
Private Sub Workbook_Open()
MsgBox "doublecliquer dans une feuille pour lancer"
End Sub
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal
Target As Range, Cancel As Boolean)
Cancel = True
UserForm1.Show
End Sub
'''''
'''''Module1
Sub impression(sh1 As String, sh2 As String)
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" & mylist.Address
For Each c In mylist.Cells
Sheets(sh1).[f1] = c
Sheets(sh1).PrintOut
Next
End Sub
'''''
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range, mylist As Range, sh1 As String, sh2 As String
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call impression(sh1, sh2)
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption = ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''
''''''''''''''''''''''''''''''''
'lSteph
JK a écrit :Bonsoir,
Je m'en remets à vos lumières car je m'arrache la tête.
Dans le fichier joint ( http://cjoint.com/?mCuVVDlN1p ), j'ai un
souci de code VBA.
En effet, dans ce fichier, il y a 4 onglets pour une année et 2
onglets avec 2 listes de personnel.
Le code VBA (fourni par ce forum) fonctionnait à merveille mais il
ne veut plus !!
Il devait puiser tous les noms des listes respectives et imprimer
pour chaque nom l'onglet "1er trimestre" par exemple.
Bizarrement, le pas-à-pas détaillé (F8 dans le module VBA)
fonctionne mais le code ne exécute pas au lancement de la macro.
Il donne une erreur VBA (manque un objet).
Le problème est également qu'au fur et à mesure des fluctuations de
personnel, ces 2 listes bougent et j'étais obligé à chaque fois de
les renommer.
C'est pourquoi il y a un nombre conséquents de noms de liste
impossibles à supprimer d'une part et la difficulté d'exécuter mes 2
macros.
Merci pour votre aide toujours aussi appréciée.
Bonnes fêtes de fin d'année encore.
Jack
As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
JK a écrit :
Merci pour ta prompte réponse.
J'ai un message d'erreur en lançant ta macro :
"Erreur exécution '9' - L'indice n'appartient pas à la sélection
En cliquant sur "débogage", je suis renvoyé à la ligne
"Worksheets(sh2).Activate" mis en surbrillance jaune.
Dommage mais ce n'est peut-être pas grand'chose.
A +
Jack
"LSteph" <lecocosteph@frite.fr> a écrit dans le message de groupe de
discussion : Oeun8a$aJHA.1532@TK2MSFTNGP03.phx.gbl...
Bonjour JK et Bonne Année (à tous d'ailleurs)
http://cjoint.com/?bblEPOlCf6
Pour quand le lien n'y sera plus:
j'ai ajouté un userform avec liste mode options et multiselect
Voici les révisions effectuées dans le code:
'''''Module1
Public mylist As Range, sh1 As String, sh2 As String
Sub Selimpression()
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" & mylist.Address
UserForm2.Show
End Sub
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call Selimpression
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption = ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''userform2
Private Sub CommandButton1_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
Sheets(sh1).[F1] = .List(i)
Sheets(sh1).PrintOut
End If
Next
End With
Unload Me
End Sub
Private Sub CommandButton2_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
.Selected(i) = Not (.Selected(i))
Next
End With
End Sub
Private Sub UserForm_Initialize()
Dim c As Range
ListBox1.Clear
For Each c In mylist.Cells
ListBox1.AddItem c
Next
End Sub
'lSteph
JK a écrit :
Bonjour et bonne année à vous.
Puis-je me permettre une question concernant mon fichier ?
Comment n'imprimer qu'une ou plusieurs feuilles suite au rajout d'un ou
plusieurs noms dans la liste sans avoir à réimprimer toute la liste ?
Merci encore à vous et plus particulièrement à LSteph
Jack
"JK" <killian.jacky@wanadoo.fr> a écrit dans le message de groupe de
discussion : #bo1mZraJHA.4276@TK2MSFTNGP05.phx.gbl...
Bonsoir et mille mercis.
C'est GÉNIAL !!!!
Cela fonctionne du tonnerre.
Merci pour ton aide précieuse.
Jack
"LSteph" <lecocosteph@frite.fr> a écrit dans le message de groupe de
discussion : eZiBhSUaJHA.1184@TK2MSFTNGP05.phx.gbl...
Bonsoir,
Ca fonctionne mais pour tes soucis il me semble
ca vient de tes listes qui obligent à les redéfinir et appliquer la
macro à la bonne feuille, car ce n'est pas controlé.
Voici une variante si le contexte reste semblable:
http://cjoint.com/?mDbsbtZDOr
''''''''''''''''''''''''''''''''''''
'''''Thisworkbook
Private Sub Workbook_Open()
MsgBox "doublecliquer dans une feuille pour lancer"
End Sub
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal
Target As Range, Cancel As Boolean)
Cancel = True
UserForm1.Show
End Sub
'''''
'''''Module1
Sub impression(sh1 As String, sh2 As String)
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" & mylist.Address
For Each c In mylist.Cells
Sheets(sh1).[f1] = c
Sheets(sh1).PrintOut
Next
End Sub
'''''
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range, mylist As Range, sh1 As String, sh2 As String
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call impression(sh1, sh2)
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption = ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''
''''''''''''''''''''''''''''''''
'lSteph
JK a écrit :
Bonsoir,
Je m'en remets à vos lumières car je m'arrache la tête.
Dans le fichier joint ( http://cjoint.com/?mCuVVDlN1p ), j'ai un
souci de code VBA.
En effet, dans ce fichier, il y a 4 onglets pour une année et 2
onglets avec 2 listes de personnel.
Le code VBA (fourni par ce forum) fonctionnait à merveille mais il
ne veut plus !!
Il devait puiser tous les noms des listes respectives et imprimer
pour chaque nom l'onglet "1er trimestre" par exemple.
Bizarrement, le pas-à-pas détaillé (F8 dans le module VBA)
fonctionne mais le code ne exécute pas au lancement de la macro.
Il donne une erreur VBA (manque un objet).
Le problème est également qu'au fur et à mesure des fluctuations de
personnel, ces 2 listes bougent et j'étais obligé à chaque fois de
les renommer.
C'est pourquoi il y a un nombre conséquents de noms de liste
impossibles à supprimer d'une part et la difficulté d'exécuter mes 2
macros.
Merci pour votre aide toujours aussi appréciée.
Bonnes fêtes de fin d'année encore.
Jack
As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
JK a écrit :Merci pour ta prompte réponse.
J'ai un message d'erreur en lançant ta macro :
"Erreur exécution '9' - L'indice n'appartient pas à la sélection
En cliquant sur "débogage", je suis renvoyé à la ligne
"Worksheets(sh2).Activate" mis en surbrillance jaune.
Dommage mais ce n'est peut-être pas grand'chose.
A +
Jack
"LSteph" a écrit dans le message de groupe de
discussion : Oeun8a$Bonjour JK et Bonne Année (à tous d'ailleurs)
http://cjoint.com/?bblEPOlCf6
Pour quand le lien n'y sera plus:
j'ai ajouté un userform avec liste mode options et multiselect
Voici les révisions effectuées dans le code:
'''''Module1
Public mylist As Range, sh1 As String, sh2 As String
Sub Selimpression()
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" & mylist.Address
UserForm2.Show
End Sub
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call Selimpression
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption = ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''userform2
Private Sub CommandButton1_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
Sheets(sh1).[F1] = .List(i)
Sheets(sh1).PrintOut
End If
Next
End With
Unload Me
End Sub
Private Sub CommandButton2_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
.Selected(i) = Not (.Selected(i))
Next
End With
End Sub
Private Sub UserForm_Initialize()
Dim c As Range
ListBox1.Clear
For Each c In mylist.Cells
ListBox1.AddItem c
Next
End Sub
'lSteph
JK a écrit :Bonjour et bonne année à vous.
Puis-je me permettre une question concernant mon fichier ?
Comment n'imprimer qu'une ou plusieurs feuilles suite au rajout d'un ou
plusieurs noms dans la liste sans avoir à réimprimer toute la liste ?
Merci encore à vous et plus particulièrement à LSteph
Jack
"JK" a écrit dans le message de groupe de
discussion : #Bonsoir et mille mercis.
C'est GÉNIAL !!!!
Cela fonctionne du tonnerre.
Merci pour ton aide précieuse.
Jack
"LSteph" a écrit dans le message de groupe de
discussion :Bonsoir,
Ca fonctionne mais pour tes soucis il me semble
ca vient de tes listes qui obligent à les redéfinir et appliquer la
macro à la bonne feuille, car ce n'est pas controlé.
Voici une variante si le contexte reste semblable:
http://cjoint.com/?mDbsbtZDOr
''''''''''''''''''''''''''''''''''''
'''''Thisworkbook
Private Sub Workbook_Open()
MsgBox "doublecliquer dans une feuille pour lancer"
End Sub
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal
Target As Range, Cancel As Boolean)
Cancel = True
UserForm1.Show
End Sub
'''''
'''''Module1
Sub impression(sh1 As String, sh2 As String)
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" & mylist.Address
For Each c In mylist.Cells
Sheets(sh1).[f1] = c
Sheets(sh1).PrintOut
Next
End Sub
'''''
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range, mylist As Range, sh1 As String, sh2 As String
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call impression(sh1, sh2)
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption = ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''
''''''''''''''''''''''''''''''''
'lSteph
JK a écrit :Bonsoir,
Je m'en remets à vos lumières car je m'arrache la tête.
Dans le fichier joint ( http://cjoint.com/?mCuVVDlN1p ), j'ai un
souci de code VBA.
En effet, dans ce fichier, il y a 4 onglets pour une année et 2
onglets avec 2 listes de personnel.
Le code VBA (fourni par ce forum) fonctionnait à merveille mais il
ne veut plus !!
Il devait puiser tous les noms des listes respectives et imprimer
pour chaque nom l'onglet "1er trimestre" par exemple.
Bizarrement, le pas-à-pas détaillé (F8 dans le module VBA)
fonctionne mais le code ne exécute pas au lancement de la macro.
Il donne une erreur VBA (manque un objet).
Le problème est également qu'au fur et à mesure des fluctuations de
personnel, ces 2 listes bougent et j'étais obligé à chaque fois de
les renommer.
C'est pourquoi il y a un nombre conséquents de noms de liste
impossibles à supprimer d'une part et la difficulté d'exécuter mes 2
macros.
Merci pour votre aide toujours aussi appréciée.
Bonnes fêtes de fin d'année encore.
Jack
As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
Peu importe la feuille dans laquelle je clique, c'est toujours le
userform1 qui s'ouvre.
Bizarre, non ??
A +
Jack
"LSteph" a écrit dans le message de groupe de
discussion :As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
JK a écrit :Merci pour ta prompte réponse.
J'ai un message d'erreur en lançant ta macro :
"Erreur exécution '9' - L'indice n'appartient pas à la sélection
En cliquant sur "débogage", je suis renvoyé à la ligne
"Worksheets(sh2).Activate" mis en surbrillance jaune.
Dommage mais ce n'est peut-être pas grand'chose.
A +
Jack
"LSteph" a écrit dans le message de groupe de
discussion : Oeun8a$Bonjour JK et Bonne Année (à tous d'ailleurs)
http://cjoint.com/?bblEPOlCf6
Pour quand le lien n'y sera plus:
j'ai ajouté un userform avec liste mode options et multiselect
Voici les révisions effectuées dans le code:
'''''Module1
Public mylist As Range, sh1 As String, sh2 As String
Sub Selimpression()
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" & mylist.Address
UserForm2.Show
End Sub
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call Selimpression
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption = ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''userform2
Private Sub CommandButton1_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
Sheets(sh1).[F1] = .List(i)
Sheets(sh1).PrintOut
End If
Next
End With
Unload Me
End Sub
Private Sub CommandButton2_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
.Selected(i) = Not (.Selected(i))
Next
End With
End Sub
Private Sub UserForm_Initialize()
Dim c As Range
ListBox1.Clear
For Each c In mylist.Cells
ListBox1.AddItem c
Next
End Sub
'lSteph
JK a écrit :Bonjour et bonne année à vous.
Puis-je me permettre une question concernant mon fichier ?
Comment n'imprimer qu'une ou plusieurs feuilles suite au rajout d'un
ou plusieurs noms dans la liste sans avoir à réimprimer toute la liste
?
Merci encore à vous et plus particulièrement à LSteph
Jack
"JK" a écrit dans le message de groupe de
discussion : #Bonsoir et mille mercis.
C'est GÉNIAL !!!!
Cela fonctionne du tonnerre.
Merci pour ton aide précieuse.
Jack
"LSteph" a écrit dans le message de groupe de
discussion :Bonsoir,
Ca fonctionne mais pour tes soucis il me semble
ca vient de tes listes qui obligent à les redéfinir et appliquer la
macro à la bonne feuille, car ce n'est pas controlé.
Voici une variante si le contexte reste semblable:
http://cjoint.com/?mDbsbtZDOr
''''''''''''''''''''''''''''''''''''
'''''Thisworkbook
Private Sub Workbook_Open()
MsgBox "doublecliquer dans une feuille pour lancer"
End Sub
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object,
ByVal Target As Range, Cancel As Boolean)
Cancel = True
UserForm1.Show
End Sub
'''''
'''''Module1
Sub impression(sh1 As String, sh2 As String)
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" &
mylist.Address
For Each c In mylist.Cells
Sheets(sh1).[f1] = c
Sheets(sh1).PrintOut
Next
End Sub
'''''
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range, mylist As Range, sh1 As String, sh2 As String
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call impression(sh1, sh2)
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption =
ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''
''''''''''''''''''''''''''''''''
'lSteph
JK a écrit :Bonsoir,
Je m'en remets à vos lumières car je m'arrache la tête.
Dans le fichier joint ( http://cjoint.com/?mCuVVDlN1p ), j'ai un
souci de code VBA.
En effet, dans ce fichier, il y a 4 onglets pour une année et 2
onglets avec 2 listes de personnel.
Le code VBA (fourni par ce forum) fonctionnait à merveille mais il
ne veut plus !!
Il devait puiser tous les noms des listes respectives et imprimer
pour chaque nom l'onglet "1er trimestre" par exemple.
Bizarrement, le pas-à-pas détaillé (F8 dans le module VBA)
fonctionne mais le code ne exécute pas au lancement de la macro.
Il donne une erreur VBA (manque un objet).
Le problème est également qu'au fur et à mesure des fluctuations de
personnel, ces 2 listes bougent et j'étais obligé à chaque fois de
les renommer.
C'est pourquoi il y a un nombre conséquents de noms de liste
impossibles à supprimer d'une part et la difficulté d'exécuter mes
2 macros.
Merci pour votre aide toujours aussi appréciée.
Bonnes fêtes de fin d'année encore.
Jack
As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
Peu importe la feuille dans laquelle je clique, c'est toujours le
userform1 qui s'ouvre.
Bizarre, non ??
A +
Jack
"LSteph" <lecocosteph@frite.fr> a écrit dans le message de groupe de
discussion : OTQx5RCbJHA.4080@TK2MSFTNGP02.phx.gbl...
As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
JK a écrit :
Merci pour ta prompte réponse.
J'ai un message d'erreur en lançant ta macro :
"Erreur exécution '9' - L'indice n'appartient pas à la sélection
En cliquant sur "débogage", je suis renvoyé à la ligne
"Worksheets(sh2).Activate" mis en surbrillance jaune.
Dommage mais ce n'est peut-être pas grand'chose.
A +
Jack
"LSteph" <lecocosteph@frite.fr> a écrit dans le message de groupe de
discussion : Oeun8a$aJHA.1532@TK2MSFTNGP03.phx.gbl...
Bonjour JK et Bonne Année (à tous d'ailleurs)
http://cjoint.com/?bblEPOlCf6
Pour quand le lien n'y sera plus:
j'ai ajouté un userform avec liste mode options et multiselect
Voici les révisions effectuées dans le code:
'''''Module1
Public mylist As Range, sh1 As String, sh2 As String
Sub Selimpression()
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" & mylist.Address
UserForm2.Show
End Sub
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call Selimpression
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption = ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''userform2
Private Sub CommandButton1_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
Sheets(sh1).[F1] = .List(i)
Sheets(sh1).PrintOut
End If
Next
End With
Unload Me
End Sub
Private Sub CommandButton2_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
.Selected(i) = Not (.Selected(i))
Next
End With
End Sub
Private Sub UserForm_Initialize()
Dim c As Range
ListBox1.Clear
For Each c In mylist.Cells
ListBox1.AddItem c
Next
End Sub
'lSteph
JK a écrit :
Bonjour et bonne année à vous.
Puis-je me permettre une question concernant mon fichier ?
Comment n'imprimer qu'une ou plusieurs feuilles suite au rajout d'un
ou plusieurs noms dans la liste sans avoir à réimprimer toute la liste
?
Merci encore à vous et plus particulièrement à LSteph
Jack
"JK" <killian.jacky@wanadoo.fr> a écrit dans le message de groupe de
discussion : #bo1mZraJHA.4276@TK2MSFTNGP05.phx.gbl...
Bonsoir et mille mercis.
C'est GÉNIAL !!!!
Cela fonctionne du tonnerre.
Merci pour ton aide précieuse.
Jack
"LSteph" <lecocosteph@frite.fr> a écrit dans le message de groupe de
discussion : eZiBhSUaJHA.1184@TK2MSFTNGP05.phx.gbl...
Bonsoir,
Ca fonctionne mais pour tes soucis il me semble
ca vient de tes listes qui obligent à les redéfinir et appliquer la
macro à la bonne feuille, car ce n'est pas controlé.
Voici une variante si le contexte reste semblable:
http://cjoint.com/?mDbsbtZDOr
''''''''''''''''''''''''''''''''''''
'''''Thisworkbook
Private Sub Workbook_Open()
MsgBox "doublecliquer dans une feuille pour lancer"
End Sub
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object,
ByVal Target As Range, Cancel As Boolean)
Cancel = True
UserForm1.Show
End Sub
'''''
'''''Module1
Sub impression(sh1 As String, sh2 As String)
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" &
mylist.Address
For Each c In mylist.Cells
Sheets(sh1).[f1] = c
Sheets(sh1).PrintOut
Next
End Sub
'''''
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range, mylist As Range, sh1 As String, sh2 As String
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call impression(sh1, sh2)
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption =
ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''
''''''''''''''''''''''''''''''''
'lSteph
JK a écrit :
Bonsoir,
Je m'en remets à vos lumières car je m'arrache la tête.
Dans le fichier joint ( http://cjoint.com/?mCuVVDlN1p ), j'ai un
souci de code VBA.
En effet, dans ce fichier, il y a 4 onglets pour une année et 2
onglets avec 2 listes de personnel.
Le code VBA (fourni par ce forum) fonctionnait à merveille mais il
ne veut plus !!
Il devait puiser tous les noms des listes respectives et imprimer
pour chaque nom l'onglet "1er trimestre" par exemple.
Bizarrement, le pas-à-pas détaillé (F8 dans le module VBA)
fonctionne mais le code ne exécute pas au lancement de la macro.
Il donne une erreur VBA (manque un objet).
Le problème est également qu'au fur et à mesure des fluctuations de
personnel, ces 2 listes bougent et j'étais obligé à chaque fois de
les renommer.
C'est pourquoi il y a un nombre conséquents de noms de liste
impossibles à supprimer d'une part et la difficulté d'exécuter mes
2 macros.
Merci pour votre aide toujours aussi appréciée.
Bonnes fêtes de fin d'année encore.
Jack
As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
Peu importe la feuille dans laquelle je clique, c'est toujours le
userform1 qui s'ouvre.
Bizarre, non ??
A +
Jack
"LSteph" a écrit dans le message de groupe de
discussion :As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
JK a écrit :Merci pour ta prompte réponse.
J'ai un message d'erreur en lançant ta macro :
"Erreur exécution '9' - L'indice n'appartient pas à la sélection
En cliquant sur "débogage", je suis renvoyé à la ligne
"Worksheets(sh2).Activate" mis en surbrillance jaune.
Dommage mais ce n'est peut-être pas grand'chose.
A +
Jack
"LSteph" a écrit dans le message de groupe de
discussion : Oeun8a$Bonjour JK et Bonne Année (à tous d'ailleurs)
http://cjoint.com/?bblEPOlCf6
Pour quand le lien n'y sera plus:
j'ai ajouté un userform avec liste mode options et multiselect
Voici les révisions effectuées dans le code:
'''''Module1
Public mylist As Range, sh1 As String, sh2 As String
Sub Selimpression()
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" & mylist.Address
UserForm2.Show
End Sub
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call Selimpression
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption = ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''userform2
Private Sub CommandButton1_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
Sheets(sh1).[F1] = .List(i)
Sheets(sh1).PrintOut
End If
Next
End With
Unload Me
End Sub
Private Sub CommandButton2_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
.Selected(i) = Not (.Selected(i))
Next
End With
End Sub
Private Sub UserForm_Initialize()
Dim c As Range
ListBox1.Clear
For Each c In mylist.Cells
ListBox1.AddItem c
Next
End Sub
'lSteph
JK a écrit :Bonjour et bonne année à vous.
Puis-je me permettre une question concernant mon fichier ?
Comment n'imprimer qu'une ou plusieurs feuilles suite au rajout d'un
ou plusieurs noms dans la liste sans avoir à réimprimer toute la liste
?
Merci encore à vous et plus particulièrement à LSteph
Jack
"JK" a écrit dans le message de groupe de
discussion : #Bonsoir et mille mercis.
C'est GÉNIAL !!!!
Cela fonctionne du tonnerre.
Merci pour ton aide précieuse.
Jack
"LSteph" a écrit dans le message de groupe de
discussion :Bonsoir,
Ca fonctionne mais pour tes soucis il me semble
ca vient de tes listes qui obligent à les redéfinir et appliquer la
macro à la bonne feuille, car ce n'est pas controlé.
Voici une variante si le contexte reste semblable:
http://cjoint.com/?mDbsbtZDOr
''''''''''''''''''''''''''''''''''''
'''''Thisworkbook
Private Sub Workbook_Open()
MsgBox "doublecliquer dans une feuille pour lancer"
End Sub
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object,
ByVal Target As Range, Cancel As Boolean)
Cancel = True
UserForm1.Show
End Sub
'''''
'''''Module1
Sub impression(sh1 As String, sh2 As String)
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" &
mylist.Address
For Each c In mylist.Cells
Sheets(sh1).[f1] = c
Sheets(sh1).PrintOut
Next
End Sub
'''''
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range, mylist As Range, sh1 As String, sh2 As String
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call impression(sh1, sh2)
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption =
ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''
''''''''''''''''''''''''''''''''
'lSteph
JK a écrit :Bonsoir,
Je m'en remets à vos lumières car je m'arrache la tête.
Dans le fichier joint ( http://cjoint.com/?mCuVVDlN1p ), j'ai un
souci de code VBA.
En effet, dans ce fichier, il y a 4 onglets pour une année et 2
onglets avec 2 listes de personnel.
Le code VBA (fourni par ce forum) fonctionnait à merveille mais il
ne veut plus !!
Il devait puiser tous les noms des listes respectives et imprimer
pour chaque nom l'onglet "1er trimestre" par exemple.
Bizarrement, le pas-à-pas détaillé (F8 dans le module VBA)
fonctionne mais le code ne exécute pas au lancement de la macro.
Il donne une erreur VBA (manque un objet).
Le problème est également qu'au fur et à mesure des fluctuations de
personnel, ces 2 listes bougent et j'étais obligé à chaque fois de
les renommer.
C'est pourquoi il y a un nombre conséquents de noms de liste
impossibles à supprimer d'une part et la difficulté d'exécuter mes
2 macros.
Merci pour votre aide toujours aussi appréciée.
Bonnes fêtes de fin d'année encore.
Jack
En rechargeant le fichier, j'ai refait des essais.
Le userform 2 ne s'ouvre pas mais j'ai à la cellule F1 de chaque feuille
une liste déroulante comprenant uniquement la liste du personnel
d'Ammerschwihr.
Bizarre ?
A+
Jack
"JK" a écrit dans le message de groupe de
discussion : #As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
Peu importe la feuille dans laquelle je clique, c'est toujours le
userform1 qui s'ouvre.
Bizarre, non ??
A +
Jack
"LSteph" a écrit dans le message de groupe de
discussion :As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
JK a écrit :Merci pour ta prompte réponse.
J'ai un message d'erreur en lançant ta macro :
"Erreur exécution '9' - L'indice n'appartient pas à la sélection
En cliquant sur "débogage", je suis renvoyé à la ligne
"Worksheets(sh2).Activate" mis en surbrillance jaune.
Dommage mais ce n'est peut-être pas grand'chose.
A +
Jack
"LSteph" a écrit dans le message de groupe de
discussion : Oeun8a$Bonjour JK et Bonne Année (à tous d'ailleurs)
http://cjoint.com/?bblEPOlCf6
Pour quand le lien n'y sera plus:
j'ai ajouté un userform avec liste mode options et multiselect
Voici les révisions effectuées dans le code:
'''''Module1
Public mylist As Range, sh1 As String, sh2 As String
Sub Selimpression()
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" & mylist.Address
UserForm2.Show
End Sub
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call Selimpression
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption = ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''userform2
Private Sub CommandButton1_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
Sheets(sh1).[F1] = .List(i)
Sheets(sh1).PrintOut
End If
Next
End With
Unload Me
End Sub
Private Sub CommandButton2_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
.Selected(i) = Not (.Selected(i))
Next
End With
End Sub
Private Sub UserForm_Initialize()
Dim c As Range
ListBox1.Clear
For Each c In mylist.Cells
ListBox1.AddItem c
Next
End Sub
'lSteph
JK a écrit :Bonjour et bonne année à vous.
Puis-je me permettre une question concernant mon fichier ?
Comment n'imprimer qu'une ou plusieurs feuilles suite au rajout
d'un ou plusieurs noms dans la liste sans avoir à réimprimer toute
la liste ?
Merci encore à vous et plus particulièrement à LSteph
Jack
"JK" a écrit dans le message de groupe
de discussion : #Bonsoir et mille mercis.
C'est GÉNIAL !!!!
Cela fonctionne du tonnerre.
Merci pour ton aide précieuse.
Jack
"LSteph" a écrit dans le message de groupe
de discussion :Bonsoir,
Ca fonctionne mais pour tes soucis il me semble
ca vient de tes listes qui obligent à les redéfinir et appliquer
la macro à la bonne feuille, car ce n'est pas controlé.
Voici une variante si le contexte reste semblable:
http://cjoint.com/?mDbsbtZDOr
''''''''''''''''''''''''''''''''''''
'''''Thisworkbook
Private Sub Workbook_Open()
MsgBox "doublecliquer dans une feuille pour lancer"
End Sub
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object,
ByVal Target As Range, Cancel As Boolean)
Cancel = True
UserForm1.Show
End Sub
'''''
'''''Module1
Sub impression(sh1 As String, sh2 As String)
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" &
mylist.Address
For Each c In mylist.Cells
Sheets(sh1).[f1] = c
Sheets(sh1).PrintOut
Next
End Sub
'''''
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range, mylist As Range, sh1 As String, sh2 As String
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call impression(sh1, sh2)
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption =
ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''
''''''''''''''''''''''''''''''''
'lSteph
JK a écrit :Bonsoir,
Je m'en remets à vos lumières car je m'arrache la tête.
Dans le fichier joint ( http://cjoint.com/?mCuVVDlN1p ), j'ai
un souci de code VBA.
En effet, dans ce fichier, il y a 4 onglets pour une année et 2
onglets avec 2 listes de personnel.
Le code VBA (fourni par ce forum) fonctionnait à merveille mais
il ne veut plus !!
Il devait puiser tous les noms des listes respectives et
imprimer pour chaque nom l'onglet "1er trimestre" par exemple.
Bizarrement, le pas-à-pas détaillé (F8 dans le module VBA)
fonctionne mais le code ne exécute pas au lancement de la macro.
Il donne une erreur VBA (manque un objet).
Le problème est également qu'au fur et à mesure des
fluctuations de personnel, ces 2 listes bougent et j'étais
obligé à chaque fois de les renommer.
C'est pourquoi il y a un nombre conséquents de noms de liste
impossibles à supprimer d'une part et la difficulté d'exécuter
mes 2 macros.
Merci pour votre aide toujours aussi appréciée.
Bonnes fêtes de fin d'année encore.
Jack
En rechargeant le fichier, j'ai refait des essais.
Le userform 2 ne s'ouvre pas mais j'ai à la cellule F1 de chaque feuille
une liste déroulante comprenant uniquement la liste du personnel
d'Ammerschwihr.
Bizarre ?
A+
Jack
"JK" <killian.jacky@wanadoo.fr> a écrit dans le message de groupe de
discussion : #I8K4ODbJHA.1676@TK2MSFTNGP03.phx.gbl...
As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
Peu importe la feuille dans laquelle je clique, c'est toujours le
userform1 qui s'ouvre.
Bizarre, non ??
A +
Jack
"LSteph" <lecocosteph@frite.fr> a écrit dans le message de groupe de
discussion : OTQx5RCbJHA.4080@TK2MSFTNGP02.phx.gbl...
As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
JK a écrit :
Merci pour ta prompte réponse.
J'ai un message d'erreur en lançant ta macro :
"Erreur exécution '9' - L'indice n'appartient pas à la sélection
En cliquant sur "débogage", je suis renvoyé à la ligne
"Worksheets(sh2).Activate" mis en surbrillance jaune.
Dommage mais ce n'est peut-être pas grand'chose.
A +
Jack
"LSteph" <lecocosteph@frite.fr> a écrit dans le message de groupe de
discussion : Oeun8a$aJHA.1532@TK2MSFTNGP03.phx.gbl...
Bonjour JK et Bonne Année (à tous d'ailleurs)
http://cjoint.com/?bblEPOlCf6
Pour quand le lien n'y sera plus:
j'ai ajouté un userform avec liste mode options et multiselect
Voici les révisions effectuées dans le code:
'''''Module1
Public mylist As Range, sh1 As String, sh2 As String
Sub Selimpression()
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" & mylist.Address
UserForm2.Show
End Sub
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call Selimpression
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption = ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''userform2
Private Sub CommandButton1_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
Sheets(sh1).[F1] = .List(i)
Sheets(sh1).PrintOut
End If
Next
End With
Unload Me
End Sub
Private Sub CommandButton2_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
.Selected(i) = Not (.Selected(i))
Next
End With
End Sub
Private Sub UserForm_Initialize()
Dim c As Range
ListBox1.Clear
For Each c In mylist.Cells
ListBox1.AddItem c
Next
End Sub
'lSteph
JK a écrit :
Bonjour et bonne année à vous.
Puis-je me permettre une question concernant mon fichier ?
Comment n'imprimer qu'une ou plusieurs feuilles suite au rajout
d'un ou plusieurs noms dans la liste sans avoir à réimprimer toute
la liste ?
Merci encore à vous et plus particulièrement à LSteph
Jack
"JK" <killian.jacky@wanadoo.fr> a écrit dans le message de groupe
de discussion : #bo1mZraJHA.4276@TK2MSFTNGP05.phx.gbl...
Bonsoir et mille mercis.
C'est GÉNIAL !!!!
Cela fonctionne du tonnerre.
Merci pour ton aide précieuse.
Jack
"LSteph" <lecocosteph@frite.fr> a écrit dans le message de groupe
de discussion : eZiBhSUaJHA.1184@TK2MSFTNGP05.phx.gbl...
Bonsoir,
Ca fonctionne mais pour tes soucis il me semble
ca vient de tes listes qui obligent à les redéfinir et appliquer
la macro à la bonne feuille, car ce n'est pas controlé.
Voici une variante si le contexte reste semblable:
http://cjoint.com/?mDbsbtZDOr
''''''''''''''''''''''''''''''''''''
'''''Thisworkbook
Private Sub Workbook_Open()
MsgBox "doublecliquer dans une feuille pour lancer"
End Sub
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object,
ByVal Target As Range, Cancel As Boolean)
Cancel = True
UserForm1.Show
End Sub
'''''
'''''Module1
Sub impression(sh1 As String, sh2 As String)
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" &
mylist.Address
For Each c In mylist.Cells
Sheets(sh1).[f1] = c
Sheets(sh1).PrintOut
Next
End Sub
'''''
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range, mylist As Range, sh1 As String, sh2 As String
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call impression(sh1, sh2)
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption =
ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''
''''''''''''''''''''''''''''''''
'lSteph
JK a écrit :
Bonsoir,
Je m'en remets à vos lumières car je m'arrache la tête.
Dans le fichier joint ( http://cjoint.com/?mCuVVDlN1p ), j'ai
un souci de code VBA.
En effet, dans ce fichier, il y a 4 onglets pour une année et 2
onglets avec 2 listes de personnel.
Le code VBA (fourni par ce forum) fonctionnait à merveille mais
il ne veut plus !!
Il devait puiser tous les noms des listes respectives et
imprimer pour chaque nom l'onglet "1er trimestre" par exemple.
Bizarrement, le pas-à-pas détaillé (F8 dans le module VBA)
fonctionne mais le code ne exécute pas au lancement de la macro.
Il donne une erreur VBA (manque un objet).
Le problème est également qu'au fur et à mesure des
fluctuations de personnel, ces 2 listes bougent et j'étais
obligé à chaque fois de les renommer.
C'est pourquoi il y a un nombre conséquents de noms de liste
impossibles à supprimer d'une part et la difficulté d'exécuter
mes 2 macros.
Merci pour votre aide toujours aussi appréciée.
Bonnes fêtes de fin d'année encore.
Jack
En rechargeant le fichier, j'ai refait des essais.
Le userform 2 ne s'ouvre pas mais j'ai à la cellule F1 de chaque feuille
une liste déroulante comprenant uniquement la liste du personnel
d'Ammerschwihr.
Bizarre ?
A+
Jack
"JK" a écrit dans le message de groupe de
discussion : #As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
Peu importe la feuille dans laquelle je clique, c'est toujours le
userform1 qui s'ouvre.
Bizarre, non ??
A +
Jack
"LSteph" a écrit dans le message de groupe de
discussion :As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
JK a écrit :Merci pour ta prompte réponse.
J'ai un message d'erreur en lançant ta macro :
"Erreur exécution '9' - L'indice n'appartient pas à la sélection
En cliquant sur "débogage", je suis renvoyé à la ligne
"Worksheets(sh2).Activate" mis en surbrillance jaune.
Dommage mais ce n'est peut-être pas grand'chose.
A +
Jack
"LSteph" a écrit dans le message de groupe de
discussion : Oeun8a$Bonjour JK et Bonne Année (à tous d'ailleurs)
http://cjoint.com/?bblEPOlCf6
Pour quand le lien n'y sera plus:
j'ai ajouté un userform avec liste mode options et multiselect
Voici les révisions effectuées dans le code:
'''''Module1
Public mylist As Range, sh1 As String, sh2 As String
Sub Selimpression()
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" & mylist.Address
UserForm2.Show
End Sub
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call Selimpression
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption = ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''userform2
Private Sub CommandButton1_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
Sheets(sh1).[F1] = .List(i)
Sheets(sh1).PrintOut
End If
Next
End With
Unload Me
End Sub
Private Sub CommandButton2_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
.Selected(i) = Not (.Selected(i))
Next
End With
End Sub
Private Sub UserForm_Initialize()
Dim c As Range
ListBox1.Clear
For Each c In mylist.Cells
ListBox1.AddItem c
Next
End Sub
'lSteph
JK a écrit :Bonjour et bonne année à vous.
Puis-je me permettre une question concernant mon fichier ?
Comment n'imprimer qu'une ou plusieurs feuilles suite au rajout
d'un ou plusieurs noms dans la liste sans avoir à réimprimer toute
la liste ?
Merci encore à vous et plus particulièrement à LSteph
Jack
"JK" a écrit dans le message de groupe
de discussion : #Bonsoir et mille mercis.
C'est GÉNIAL !!!!
Cela fonctionne du tonnerre.
Merci pour ton aide précieuse.
Jack
"LSteph" a écrit dans le message de groupe
de discussion :Bonsoir,
Ca fonctionne mais pour tes soucis il me semble
ca vient de tes listes qui obligent à les redéfinir et appliquer
la macro à la bonne feuille, car ce n'est pas controlé.
Voici une variante si le contexte reste semblable:
http://cjoint.com/?mDbsbtZDOr
''''''''''''''''''''''''''''''''''''
'''''Thisworkbook
Private Sub Workbook_Open()
MsgBox "doublecliquer dans une feuille pour lancer"
End Sub
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object,
ByVal Target As Range, Cancel As Boolean)
Cancel = True
UserForm1.Show
End Sub
'''''
'''''Module1
Sub impression(sh1 As String, sh2 As String)
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" &
mylist.Address
For Each c In mylist.Cells
Sheets(sh1).[f1] = c
Sheets(sh1).PrintOut
Next
End Sub
'''''
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range, mylist As Range, sh1 As String, sh2 As String
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call impression(sh1, sh2)
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption =
ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''
''''''''''''''''''''''''''''''''
'lSteph
JK a écrit :Bonsoir,
Je m'en remets à vos lumières car je m'arrache la tête.
Dans le fichier joint ( http://cjoint.com/?mCuVVDlN1p ), j'ai
un souci de code VBA.
En effet, dans ce fichier, il y a 4 onglets pour une année et 2
onglets avec 2 listes de personnel.
Le code VBA (fourni par ce forum) fonctionnait à merveille mais
il ne veut plus !!
Il devait puiser tous les noms des listes respectives et
imprimer pour chaque nom l'onglet "1er trimestre" par exemple.
Bizarrement, le pas-à-pas détaillé (F8 dans le module VBA)
fonctionne mais le code ne exécute pas au lancement de la macro.
Il donne une erreur VBA (manque un objet).
Le problème est également qu'au fur et à mesure des
fluctuations de personnel, ces 2 listes bougent et j'étais
obligé à chaque fois de les renommer.
C'est pourquoi il y a un nombre conséquents de noms de liste
impossibles à supprimer d'une part et la difficulté d'exécuter
mes 2 macros.
Merci pour votre aide toujours aussi appréciée.
Bonnes fêtes de fin d'année encore.
Jack
Curieux, chez moi(2003) il fonctionne impec!
et je n'arrive pas à reproduire l'erreur dont tu parles.
> une liste déroulante comprenant uniquement la liste du personnel
> d'Ammerschwihr.
La liste s'adapte en fonction du dernier choix.
je te le remets au cas où:
http://cjoint.com/?bbtCKK4Pdm
JK a écrit :En rechargeant le fichier, j'ai refait des essais.
Le userform 2 ne s'ouvre pas mais j'ai à la cellule F1 de chaque feuille
une liste déroulante comprenant uniquement la liste du personnel
d'Ammerschwihr.
Bizarre ?
A+
Jack
"JK" a écrit dans le message de groupe de
discussion : #As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
Peu importe la feuille dans laquelle je clique, c'est toujours le
userform1 qui s'ouvre.
Bizarre, non ??
A +
Jack
"LSteph" a écrit dans le message de groupe de
discussion :As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
JK a écrit :Merci pour ta prompte réponse.
J'ai un message d'erreur en lançant ta macro :
"Erreur exécution '9' - L'indice n'appartient pas à la sélection
En cliquant sur "débogage", je suis renvoyé à la ligne
"Worksheets(sh2).Activate" mis en surbrillance jaune.
Dommage mais ce n'est peut-être pas grand'chose.
A +
Jack
"LSteph" a écrit dans le message de groupe de
discussion : Oeun8a$Bonjour JK et Bonne Année (à tous d'ailleurs)
http://cjoint.com/?bblEPOlCf6
Pour quand le lien n'y sera plus:
j'ai ajouté un userform avec liste mode options et multiselect
Voici les révisions effectuées dans le code:
'''''Module1
Public mylist As Range, sh1 As String, sh2 As String
Sub Selimpression()
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" & mylist.Address
UserForm2.Show
End Sub
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call Selimpression
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption = ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''userform2
Private Sub CommandButton1_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
Sheets(sh1).[F1] = .List(i)
Sheets(sh1).PrintOut
End If
Next
End With
Unload Me
End Sub
Private Sub CommandButton2_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
.Selected(i) = Not (.Selected(i))
Next
End With
End Sub
Private Sub UserForm_Initialize()
Dim c As Range
ListBox1.Clear
For Each c In mylist.Cells
ListBox1.AddItem c
Next
End Sub
'lSteph
JK a écrit :Bonjour et bonne année à vous.
Puis-je me permettre une question concernant mon fichier ?
Comment n'imprimer qu'une ou plusieurs feuilles suite au rajout d'un
ou plusieurs noms dans la liste sans avoir à réimprimer toute la
liste ?
Merci encore à vous et plus particulièrement à LSteph
Jack
"JK" a écrit dans le message de groupe de
discussion : #Bonsoir et mille mercis.
C'est GÉNIAL !!!!
Cela fonctionne du tonnerre.
Merci pour ton aide précieuse.
Jack
"LSteph" a écrit dans le message de groupe
de discussion :Bonsoir,
Ca fonctionne mais pour tes soucis il me semble
ca vient de tes listes qui obligent à les redéfinir et appliquer
la macro à la bonne feuille, car ce n'est pas controlé.
Voici une variante si le contexte reste semblable:
http://cjoint.com/?mDbsbtZDOr
''''''''''''''''''''''''''''''''''''
'''''Thisworkbook
Private Sub Workbook_Open()
MsgBox "doublecliquer dans une feuille pour lancer"
End Sub
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object,
ByVal Target As Range, Cancel As Boolean)
Cancel = True
UserForm1.Show
End Sub
'''''
'''''Module1
Sub impression(sh1 As String, sh2 As String)
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" &
mylist.Address
For Each c In mylist.Cells
Sheets(sh1).[f1] = c
Sheets(sh1).PrintOut
Next
End Sub
'''''
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range, mylist As Range, sh1 As String, sh2 As String
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call impression(sh1, sh2)
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption =
ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''
''''''''''''''''''''''''''''''''
'lSteph
JK a écrit :Bonsoir,
Je m'en remets à vos lumières car je m'arrache la tête.
Dans le fichier joint ( http://cjoint.com/?mCuVVDlN1p ), j'ai un
souci de code VBA.
En effet, dans ce fichier, il y a 4 onglets pour une année et 2
onglets avec 2 listes de personnel.
Le code VBA (fourni par ce forum) fonctionnait à merveille mais
il ne veut plus !!
Il devait puiser tous les noms des listes respectives et imprimer
pour chaque nom l'onglet "1er trimestre" par exemple.
Bizarrement, le pas-à-pas détaillé (F8 dans le module VBA)
fonctionne mais le code ne exécute pas au lancement de la macro.
Il donne une erreur VBA (manque un objet).
Le problème est également qu'au fur et à mesure des fluctuations
de personnel, ces 2 listes bougent et j'étais obligé à chaque
fois de les renommer.
C'est pourquoi il y a un nombre conséquents de noms de liste
impossibles à supprimer d'une part et la difficulté d'exécuter
mes 2 macros.
Merci pour votre aide toujours aussi appréciée.
Bonnes fêtes de fin d'année encore.
Jack
Curieux, chez moi(2003) il fonctionne impec!
et je n'arrive pas à reproduire l'erreur dont tu parles.
> une liste déroulante comprenant uniquement la liste du personnel
> d'Ammerschwihr.
La liste s'adapte en fonction du dernier choix.
je te le remets au cas où:
http://cjoint.com/?bbtCKK4Pdm
JK a écrit :
En rechargeant le fichier, j'ai refait des essais.
Le userform 2 ne s'ouvre pas mais j'ai à la cellule F1 de chaque feuille
une liste déroulante comprenant uniquement la liste du personnel
d'Ammerschwihr.
Bizarre ?
A+
Jack
"JK" <killian.jacky@wanadoo.fr> a écrit dans le message de groupe de
discussion : #I8K4ODbJHA.1676@TK2MSFTNGP03.phx.gbl...
As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
Peu importe la feuille dans laquelle je clique, c'est toujours le
userform1 qui s'ouvre.
Bizarre, non ??
A +
Jack
"LSteph" <lecocosteph@frite.fr> a écrit dans le message de groupe de
discussion : OTQx5RCbJHA.4080@TK2MSFTNGP02.phx.gbl...
As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
JK a écrit :
Merci pour ta prompte réponse.
J'ai un message d'erreur en lançant ta macro :
"Erreur exécution '9' - L'indice n'appartient pas à la sélection
En cliquant sur "débogage", je suis renvoyé à la ligne
"Worksheets(sh2).Activate" mis en surbrillance jaune.
Dommage mais ce n'est peut-être pas grand'chose.
A +
Jack
"LSteph" <lecocosteph@frite.fr> a écrit dans le message de groupe de
discussion : Oeun8a$aJHA.1532@TK2MSFTNGP03.phx.gbl...
Bonjour JK et Bonne Année (à tous d'ailleurs)
http://cjoint.com/?bblEPOlCf6
Pour quand le lien n'y sera plus:
j'ai ajouté un userform avec liste mode options et multiselect
Voici les révisions effectuées dans le code:
'''''Module1
Public mylist As Range, sh1 As String, sh2 As String
Sub Selimpression()
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" & mylist.Address
UserForm2.Show
End Sub
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call Selimpression
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption = ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''userform2
Private Sub CommandButton1_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
Sheets(sh1).[F1] = .List(i)
Sheets(sh1).PrintOut
End If
Next
End With
Unload Me
End Sub
Private Sub CommandButton2_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
.Selected(i) = Not (.Selected(i))
Next
End With
End Sub
Private Sub UserForm_Initialize()
Dim c As Range
ListBox1.Clear
For Each c In mylist.Cells
ListBox1.AddItem c
Next
End Sub
'lSteph
JK a écrit :
Bonjour et bonne année à vous.
Puis-je me permettre une question concernant mon fichier ?
Comment n'imprimer qu'une ou plusieurs feuilles suite au rajout d'un
ou plusieurs noms dans la liste sans avoir à réimprimer toute la
liste ?
Merci encore à vous et plus particulièrement à LSteph
Jack
"JK" <killian.jacky@wanadoo.fr> a écrit dans le message de groupe de
discussion : #bo1mZraJHA.4276@TK2MSFTNGP05.phx.gbl...
Bonsoir et mille mercis.
C'est GÉNIAL !!!!
Cela fonctionne du tonnerre.
Merci pour ton aide précieuse.
Jack
"LSteph" <lecocosteph@frite.fr> a écrit dans le message de groupe
de discussion : eZiBhSUaJHA.1184@TK2MSFTNGP05.phx.gbl...
Bonsoir,
Ca fonctionne mais pour tes soucis il me semble
ca vient de tes listes qui obligent à les redéfinir et appliquer
la macro à la bonne feuille, car ce n'est pas controlé.
Voici une variante si le contexte reste semblable:
http://cjoint.com/?mDbsbtZDOr
''''''''''''''''''''''''''''''''''''
'''''Thisworkbook
Private Sub Workbook_Open()
MsgBox "doublecliquer dans une feuille pour lancer"
End Sub
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object,
ByVal Target As Range, Cancel As Boolean)
Cancel = True
UserForm1.Show
End Sub
'''''
'''''Module1
Sub impression(sh1 As String, sh2 As String)
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" &
mylist.Address
For Each c In mylist.Cells
Sheets(sh1).[f1] = c
Sheets(sh1).PrintOut
Next
End Sub
'''''
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range, mylist As Range, sh1 As String, sh2 As String
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call impression(sh1, sh2)
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption =
ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''
''''''''''''''''''''''''''''''''
'lSteph
JK a écrit :
Bonsoir,
Je m'en remets à vos lumières car je m'arrache la tête.
Dans le fichier joint ( http://cjoint.com/?mCuVVDlN1p ), j'ai un
souci de code VBA.
En effet, dans ce fichier, il y a 4 onglets pour une année et 2
onglets avec 2 listes de personnel.
Le code VBA (fourni par ce forum) fonctionnait à merveille mais
il ne veut plus !!
Il devait puiser tous les noms des listes respectives et imprimer
pour chaque nom l'onglet "1er trimestre" par exemple.
Bizarrement, le pas-à-pas détaillé (F8 dans le module VBA)
fonctionne mais le code ne exécute pas au lancement de la macro.
Il donne une erreur VBA (manque un objet).
Le problème est également qu'au fur et à mesure des fluctuations
de personnel, ces 2 listes bougent et j'étais obligé à chaque
fois de les renommer.
C'est pourquoi il y a un nombre conséquents de noms de liste
impossibles à supprimer d'une part et la difficulté d'exécuter
mes 2 macros.
Merci pour votre aide toujours aussi appréciée.
Bonnes fêtes de fin d'année encore.
Jack
Curieux, chez moi(2003) il fonctionne impec!
et je n'arrive pas à reproduire l'erreur dont tu parles.
> une liste déroulante comprenant uniquement la liste du personnel
> d'Ammerschwihr.
La liste s'adapte en fonction du dernier choix.
je te le remets au cas où:
http://cjoint.com/?bbtCKK4Pdm
JK a écrit :En rechargeant le fichier, j'ai refait des essais.
Le userform 2 ne s'ouvre pas mais j'ai à la cellule F1 de chaque feuille
une liste déroulante comprenant uniquement la liste du personnel
d'Ammerschwihr.
Bizarre ?
A+
Jack
"JK" a écrit dans le message de groupe de
discussion : #As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
Peu importe la feuille dans laquelle je clique, c'est toujours le
userform1 qui s'ouvre.
Bizarre, non ??
A +
Jack
"LSteph" a écrit dans le message de groupe de
discussion :As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
JK a écrit :Merci pour ta prompte réponse.
J'ai un message d'erreur en lançant ta macro :
"Erreur exécution '9' - L'indice n'appartient pas à la sélection
En cliquant sur "débogage", je suis renvoyé à la ligne
"Worksheets(sh2).Activate" mis en surbrillance jaune.
Dommage mais ce n'est peut-être pas grand'chose.
A +
Jack
"LSteph" a écrit dans le message de groupe de
discussion : Oeun8a$Bonjour JK et Bonne Année (à tous d'ailleurs)
http://cjoint.com/?bblEPOlCf6
Pour quand le lien n'y sera plus:
j'ai ajouté un userform avec liste mode options et multiselect
Voici les révisions effectuées dans le code:
'''''Module1
Public mylist As Range, sh1 As String, sh2 As String
Sub Selimpression()
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" & mylist.Address
UserForm2.Show
End Sub
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call Selimpression
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption = ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''userform2
Private Sub CommandButton1_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
Sheets(sh1).[F1] = .List(i)
Sheets(sh1).PrintOut
End If
Next
End With
Unload Me
End Sub
Private Sub CommandButton2_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
.Selected(i) = Not (.Selected(i))
Next
End With
End Sub
Private Sub UserForm_Initialize()
Dim c As Range
ListBox1.Clear
For Each c In mylist.Cells
ListBox1.AddItem c
Next
End Sub
'lSteph
JK a écrit :Bonjour et bonne année à vous.
Puis-je me permettre une question concernant mon fichier ?
Comment n'imprimer qu'une ou plusieurs feuilles suite au rajout d'un
ou plusieurs noms dans la liste sans avoir à réimprimer toute la
liste ?
Merci encore à vous et plus particulièrement à LSteph
Jack
"JK" a écrit dans le message de groupe de
discussion : #Bonsoir et mille mercis.
C'est GÉNIAL !!!!
Cela fonctionne du tonnerre.
Merci pour ton aide précieuse.
Jack
"LSteph" a écrit dans le message de groupe
de discussion :Bonsoir,
Ca fonctionne mais pour tes soucis il me semble
ca vient de tes listes qui obligent à les redéfinir et appliquer
la macro à la bonne feuille, car ce n'est pas controlé.
Voici une variante si le contexte reste semblable:
http://cjoint.com/?mDbsbtZDOr
''''''''''''''''''''''''''''''''''''
'''''Thisworkbook
Private Sub Workbook_Open()
MsgBox "doublecliquer dans une feuille pour lancer"
End Sub
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object,
ByVal Target As Range, Cancel As Boolean)
Cancel = True
UserForm1.Show
End Sub
'''''
'''''Module1
Sub impression(sh1 As String, sh2 As String)
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" &
mylist.Address
For Each c In mylist.Cells
Sheets(sh1).[f1] = c
Sheets(sh1).PrintOut
Next
End Sub
'''''
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range, mylist As Range, sh1 As String, sh2 As String
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call impression(sh1, sh2)
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption =
ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''
''''''''''''''''''''''''''''''''
'lSteph
JK a écrit :Bonsoir,
Je m'en remets à vos lumières car je m'arrache la tête.
Dans le fichier joint ( http://cjoint.com/?mCuVVDlN1p ), j'ai un
souci de code VBA.
En effet, dans ce fichier, il y a 4 onglets pour une année et 2
onglets avec 2 listes de personnel.
Le code VBA (fourni par ce forum) fonctionnait à merveille mais
il ne veut plus !!
Il devait puiser tous les noms des listes respectives et imprimer
pour chaque nom l'onglet "1er trimestre" par exemple.
Bizarrement, le pas-à-pas détaillé (F8 dans le module VBA)
fonctionne mais le code ne exécute pas au lancement de la macro.
Il donne une erreur VBA (manque un objet).
Le problème est également qu'au fur et à mesure des fluctuations
de personnel, ces 2 listes bougent et j'étais obligé à chaque
fois de les renommer.
C'est pourquoi il y a un nombre conséquents de noms de liste
impossibles à supprimer d'une part et la difficulté d'exécuter
mes 2 macros.
Merci pour votre aide toujours aussi appréciée.
Bonnes fêtes de fin d'année encore.
Jack
Toujours le même souci (suis également en version 2003).
A la réception du fichier,
- sur la feuille "1er trimestre" => liste déroulante personnel KB
- sur la feuille "2ème trimestre" => liste déroulante personnel KB
- sur la feuille "3ème trimestre" => liste déroulante personnel Amm
- sur la feuille "4ème trimestre" => liste déroulante personnel Amm
Toujours même message d'erreur ==> voir fichiers joints
http://cjoint.com/?bbux35PjCg
http://cjoint.com/?bbuyMRzvls
A+ et merci encore pour ton aide précieuse
Jack
"LSteph" a écrit dans le message de groupe de
discussion :Curieux, chez moi(2003) il fonctionne impec!
et je n'arrive pas à reproduire l'erreur dont tu parles.
> une liste déroulante comprenant uniquement la liste du personnel
> d'Ammerschwihr.
La liste s'adapte en fonction du dernier choix.
je te le remets au cas où:
http://cjoint.com/?bbtCKK4Pdm
JK a écrit :En rechargeant le fichier, j'ai refait des essais.
Le userform 2 ne s'ouvre pas mais j'ai à la cellule F1 de chaque
feuille une liste déroulante comprenant uniquement la liste du
personnel d'Ammerschwihr.
Bizarre ?
A+
Jack
"JK" a écrit dans le message de groupe de
discussion : #As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
Peu importe la feuille dans laquelle je clique, c'est toujours le
userform1 qui s'ouvre.
Bizarre, non ??
A +
Jack
"LSteph" a écrit dans le message de groupe de
discussion :As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
JK a écrit :Merci pour ta prompte réponse.
J'ai un message d'erreur en lançant ta macro :
"Erreur exécution '9' - L'indice n'appartient pas à la sélection
En cliquant sur "débogage", je suis renvoyé à la ligne
"Worksheets(sh2).Activate" mis en surbrillance jaune.
Dommage mais ce n'est peut-être pas grand'chose.
A +
Jack
"LSteph" a écrit dans le message de groupe
de discussion : Oeun8a$Bonjour JK et Bonne Année (à tous d'ailleurs)
http://cjoint.com/?bblEPOlCf6
Pour quand le lien n'y sera plus:
j'ai ajouté un userform avec liste mode options et multiselect
Voici les révisions effectuées dans le code:
'''''Module1
Public mylist As Range, sh1 As String, sh2 As String
Sub Selimpression()
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" &
mylist.Address
UserForm2.Show
End Sub
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call Selimpression
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption =
ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''userform2
Private Sub CommandButton1_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
Sheets(sh1).[F1] = .List(i)
Sheets(sh1).PrintOut
End If
Next
End With
Unload Me
End Sub
Private Sub CommandButton2_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
.Selected(i) = Not (.Selected(i))
Next
End With
End Sub
Private Sub UserForm_Initialize()
Dim c As Range
ListBox1.Clear
For Each c In mylist.Cells
ListBox1.AddItem c
Next
End Sub
'lSteph
JK a écrit :Bonjour et bonne année à vous.
Puis-je me permettre une question concernant mon fichier ?
Comment n'imprimer qu'une ou plusieurs feuilles suite au rajout
d'un ou plusieurs noms dans la liste sans avoir à réimprimer
toute la liste ?
Merci encore à vous et plus particulièrement à LSteph
Jack
"JK" a écrit dans le message de
groupe de discussion : #Bonsoir et mille mercis.
C'est GÉNIAL !!!!
Cela fonctionne du tonnerre.
Merci pour ton aide précieuse.
Jack
"LSteph" a écrit dans le message de
groupe de discussion :Bonsoir,
Ca fonctionne mais pour tes soucis il me semble
ca vient de tes listes qui obligent à les redéfinir et
appliquer la macro à la bonne feuille, car ce n'est pas controlé.
Voici une variante si le contexte reste semblable:
http://cjoint.com/?mDbsbtZDOr
''''''''''''''''''''''''''''''''''''
'''''Thisworkbook
Private Sub Workbook_Open()
MsgBox "doublecliquer dans une feuille pour lancer"
End Sub
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As
Object, ByVal Target As Range, Cancel As Boolean)
Cancel = True
UserForm1.Show
End Sub
'''''
'''''Module1
Sub impression(sh1 As String, sh2 As String)
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" &
mylist.Address
For Each c In mylist.Cells
Sheets(sh1).[f1] = c
Sheets(sh1).PrintOut
Next
End Sub
'''''
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range, mylist As Range, sh1 As String, sh2 As String
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call impression(sh1, sh2)
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption =
ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''
''''''''''''''''''''''''''''''''
'lSteph
JK a écrit :Bonsoir,
Je m'en remets à vos lumières car je m'arrache la tête.
Dans le fichier joint ( http://cjoint.com/?mCuVVDlN1p ), j'ai
un souci de code VBA.
En effet, dans ce fichier, il y a 4 onglets pour une année et
2 onglets avec 2 listes de personnel.
Le code VBA (fourni par ce forum) fonctionnait à merveille
mais il ne veut plus !!
Il devait puiser tous les noms des listes respectives et
imprimer pour chaque nom l'onglet "1er trimestre" par exemple.
Bizarrement, le pas-à-pas détaillé (F8 dans le module VBA)
fonctionne mais le code ne exécute pas au lancement de la macro.
Il donne une erreur VBA (manque un objet).
Le problème est également qu'au fur et à mesure des
fluctuations de personnel, ces 2 listes bougent et j'étais
obligé à chaque fois de les renommer.
C'est pourquoi il y a un nombre conséquents de noms de liste
impossibles à supprimer d'une part et la difficulté
d'exécuter mes 2 macros.
Merci pour votre aide toujours aussi appréciée.
Bonnes fêtes de fin d'année encore.
Jack
Toujours le même souci (suis également en version 2003).
A la réception du fichier,
- sur la feuille "1er trimestre" => liste déroulante personnel KB
- sur la feuille "2ème trimestre" => liste déroulante personnel KB
- sur la feuille "3ème trimestre" => liste déroulante personnel Amm
- sur la feuille "4ème trimestre" => liste déroulante personnel Amm
Toujours même message d'erreur ==> voir fichiers joints
http://cjoint.com/?bbux35PjCg
http://cjoint.com/?bbuyMRzvls
A+ et merci encore pour ton aide précieuse
Jack
"LSteph" <lecocosteph@frite.fr> a écrit dans le message de groupe de
discussion : ez3tKhDbJHA.1336@TK2MSFTNGP02.phx.gbl...
Curieux, chez moi(2003) il fonctionne impec!
et je n'arrive pas à reproduire l'erreur dont tu parles.
> une liste déroulante comprenant uniquement la liste du personnel
> d'Ammerschwihr.
La liste s'adapte en fonction du dernier choix.
je te le remets au cas où:
http://cjoint.com/?bbtCKK4Pdm
JK a écrit :
En rechargeant le fichier, j'ai refait des essais.
Le userform 2 ne s'ouvre pas mais j'ai à la cellule F1 de chaque
feuille une liste déroulante comprenant uniquement la liste du
personnel d'Ammerschwihr.
Bizarre ?
A+
Jack
"JK" <killian.jacky@wanadoo.fr> a écrit dans le message de groupe de
discussion : #I8K4ODbJHA.1676@TK2MSFTNGP03.phx.gbl...
As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
Peu importe la feuille dans laquelle je clique, c'est toujours le
userform1 qui s'ouvre.
Bizarre, non ??
A +
Jack
"LSteph" <lecocosteph@frite.fr> a écrit dans le message de groupe de
discussion : OTQx5RCbJHA.4080@TK2MSFTNGP02.phx.gbl...
As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
JK a écrit :
Merci pour ta prompte réponse.
J'ai un message d'erreur en lançant ta macro :
"Erreur exécution '9' - L'indice n'appartient pas à la sélection
En cliquant sur "débogage", je suis renvoyé à la ligne
"Worksheets(sh2).Activate" mis en surbrillance jaune.
Dommage mais ce n'est peut-être pas grand'chose.
A +
Jack
"LSteph" <lecocosteph@frite.fr> a écrit dans le message de groupe
de discussion : Oeun8a$aJHA.1532@TK2MSFTNGP03.phx.gbl...
Bonjour JK et Bonne Année (à tous d'ailleurs)
http://cjoint.com/?bblEPOlCf6
Pour quand le lien n'y sera plus:
j'ai ajouté un userform avec liste mode options et multiselect
Voici les révisions effectuées dans le code:
'''''Module1
Public mylist As Range, sh1 As String, sh2 As String
Sub Selimpression()
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" &
mylist.Address
UserForm2.Show
End Sub
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call Selimpression
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption =
ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''userform2
Private Sub CommandButton1_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
Sheets(sh1).[F1] = .List(i)
Sheets(sh1).PrintOut
End If
Next
End With
Unload Me
End Sub
Private Sub CommandButton2_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
.Selected(i) = Not (.Selected(i))
Next
End With
End Sub
Private Sub UserForm_Initialize()
Dim c As Range
ListBox1.Clear
For Each c In mylist.Cells
ListBox1.AddItem c
Next
End Sub
'lSteph
JK a écrit :
Bonjour et bonne année à vous.
Puis-je me permettre une question concernant mon fichier ?
Comment n'imprimer qu'une ou plusieurs feuilles suite au rajout
d'un ou plusieurs noms dans la liste sans avoir à réimprimer
toute la liste ?
Merci encore à vous et plus particulièrement à LSteph
Jack
"JK" <killian.jacky@wanadoo.fr> a écrit dans le message de
groupe de discussion : #bo1mZraJHA.4276@TK2MSFTNGP05.phx.gbl...
Bonsoir et mille mercis.
C'est GÉNIAL !!!!
Cela fonctionne du tonnerre.
Merci pour ton aide précieuse.
Jack
"LSteph" <lecocosteph@frite.fr> a écrit dans le message de
groupe de discussion : eZiBhSUaJHA.1184@TK2MSFTNGP05.phx.gbl...
Bonsoir,
Ca fonctionne mais pour tes soucis il me semble
ca vient de tes listes qui obligent à les redéfinir et
appliquer la macro à la bonne feuille, car ce n'est pas controlé.
Voici une variante si le contexte reste semblable:
http://cjoint.com/?mDbsbtZDOr
''''''''''''''''''''''''''''''''''''
'''''Thisworkbook
Private Sub Workbook_Open()
MsgBox "doublecliquer dans une feuille pour lancer"
End Sub
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As
Object, ByVal Target As Range, Cancel As Boolean)
Cancel = True
UserForm1.Show
End Sub
'''''
'''''Module1
Sub impression(sh1 As String, sh2 As String)
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" &
mylist.Address
For Each c In mylist.Cells
Sheets(sh1).[f1] = c
Sheets(sh1).PrintOut
Next
End Sub
'''''
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range, mylist As Range, sh1 As String, sh2 As String
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call impression(sh1, sh2)
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption =
ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''
''''''''''''''''''''''''''''''''
'lSteph
JK a écrit :
Bonsoir,
Je m'en remets à vos lumières car je m'arrache la tête.
Dans le fichier joint ( http://cjoint.com/?mCuVVDlN1p ), j'ai
un souci de code VBA.
En effet, dans ce fichier, il y a 4 onglets pour une année et
2 onglets avec 2 listes de personnel.
Le code VBA (fourni par ce forum) fonctionnait à merveille
mais il ne veut plus !!
Il devait puiser tous les noms des listes respectives et
imprimer pour chaque nom l'onglet "1er trimestre" par exemple.
Bizarrement, le pas-à-pas détaillé (F8 dans le module VBA)
fonctionne mais le code ne exécute pas au lancement de la macro.
Il donne une erreur VBA (manque un objet).
Le problème est également qu'au fur et à mesure des
fluctuations de personnel, ces 2 listes bougent et j'étais
obligé à chaque fois de les renommer.
C'est pourquoi il y a un nombre conséquents de noms de liste
impossibles à supprimer d'une part et la difficulté
d'exécuter mes 2 macros.
Merci pour votre aide toujours aussi appréciée.
Bonnes fêtes de fin d'année encore.
Jack
Toujours le même souci (suis également en version 2003).
A la réception du fichier,
- sur la feuille "1er trimestre" => liste déroulante personnel KB
- sur la feuille "2ème trimestre" => liste déroulante personnel KB
- sur la feuille "3ème trimestre" => liste déroulante personnel Amm
- sur la feuille "4ème trimestre" => liste déroulante personnel Amm
Toujours même message d'erreur ==> voir fichiers joints
http://cjoint.com/?bbux35PjCg
http://cjoint.com/?bbuyMRzvls
A+ et merci encore pour ton aide précieuse
Jack
"LSteph" a écrit dans le message de groupe de
discussion :Curieux, chez moi(2003) il fonctionne impec!
et je n'arrive pas à reproduire l'erreur dont tu parles.
> une liste déroulante comprenant uniquement la liste du personnel
> d'Ammerschwihr.
La liste s'adapte en fonction du dernier choix.
je te le remets au cas où:
http://cjoint.com/?bbtCKK4Pdm
JK a écrit :En rechargeant le fichier, j'ai refait des essais.
Le userform 2 ne s'ouvre pas mais j'ai à la cellule F1 de chaque
feuille une liste déroulante comprenant uniquement la liste du
personnel d'Ammerschwihr.
Bizarre ?
A+
Jack
"JK" a écrit dans le message de groupe de
discussion : #As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
Peu importe la feuille dans laquelle je clique, c'est toujours le
userform1 qui s'ouvre.
Bizarre, non ??
A +
Jack
"LSteph" a écrit dans le message de groupe de
discussion :As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
JK a écrit :Merci pour ta prompte réponse.
J'ai un message d'erreur en lançant ta macro :
"Erreur exécution '9' - L'indice n'appartient pas à la sélection
En cliquant sur "débogage", je suis renvoyé à la ligne
"Worksheets(sh2).Activate" mis en surbrillance jaune.
Dommage mais ce n'est peut-être pas grand'chose.
A +
Jack
"LSteph" a écrit dans le message de groupe
de discussion : Oeun8a$Bonjour JK et Bonne Année (à tous d'ailleurs)
http://cjoint.com/?bblEPOlCf6
Pour quand le lien n'y sera plus:
j'ai ajouté un userform avec liste mode options et multiselect
Voici les révisions effectuées dans le code:
'''''Module1
Public mylist As Range, sh1 As String, sh2 As String
Sub Selimpression()
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" &
mylist.Address
UserForm2.Show
End Sub
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call Selimpression
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption =
ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''userform2
Private Sub CommandButton1_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
Sheets(sh1).[F1] = .List(i)
Sheets(sh1).PrintOut
End If
Next
End With
Unload Me
End Sub
Private Sub CommandButton2_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
.Selected(i) = Not (.Selected(i))
Next
End With
End Sub
Private Sub UserForm_Initialize()
Dim c As Range
ListBox1.Clear
For Each c In mylist.Cells
ListBox1.AddItem c
Next
End Sub
'lSteph
JK a écrit :Bonjour et bonne année à vous.
Puis-je me permettre une question concernant mon fichier ?
Comment n'imprimer qu'une ou plusieurs feuilles suite au rajout
d'un ou plusieurs noms dans la liste sans avoir à réimprimer
toute la liste ?
Merci encore à vous et plus particulièrement à LSteph
Jack
"JK" a écrit dans le message de
groupe de discussion : #Bonsoir et mille mercis.
C'est GÉNIAL !!!!
Cela fonctionne du tonnerre.
Merci pour ton aide précieuse.
Jack
"LSteph" a écrit dans le message de
groupe de discussion :Bonsoir,
Ca fonctionne mais pour tes soucis il me semble
ca vient de tes listes qui obligent à les redéfinir et
appliquer la macro à la bonne feuille, car ce n'est pas controlé.
Voici une variante si le contexte reste semblable:
http://cjoint.com/?mDbsbtZDOr
''''''''''''''''''''''''''''''''''''
'''''Thisworkbook
Private Sub Workbook_Open()
MsgBox "doublecliquer dans une feuille pour lancer"
End Sub
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As
Object, ByVal Target As Range, Cancel As Boolean)
Cancel = True
UserForm1.Show
End Sub
'''''
'''''Module1
Sub impression(sh1 As String, sh2 As String)
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" &
mylist.Address
For Each c In mylist.Cells
Sheets(sh1).[f1] = c
Sheets(sh1).PrintOut
Next
End Sub
'''''
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range, mylist As Range, sh1 As String, sh2 As String
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call impression(sh1, sh2)
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption =
ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''
''''''''''''''''''''''''''''''''
'lSteph
JK a écrit :Bonsoir,
Je m'en remets à vos lumières car je m'arrache la tête.
Dans le fichier joint ( http://cjoint.com/?mCuVVDlN1p ), j'ai
un souci de code VBA.
En effet, dans ce fichier, il y a 4 onglets pour une année et
2 onglets avec 2 listes de personnel.
Le code VBA (fourni par ce forum) fonctionnait à merveille
mais il ne veut plus !!
Il devait puiser tous les noms des listes respectives et
imprimer pour chaque nom l'onglet "1er trimestre" par exemple.
Bizarrement, le pas-à-pas détaillé (F8 dans le module VBA)
fonctionne mais le code ne exécute pas au lancement de la macro.
Il donne une erreur VBA (manque un objet).
Le problème est également qu'au fur et à mesure des
fluctuations de personnel, ces 2 listes bougent et j'étais
obligé à chaque fois de les renommer.
C'est pourquoi il y a un nombre conséquents de noms de liste
impossibles à supprimer d'une part et la difficulté
d'exécuter mes 2 macros.
Merci pour votre aide toujours aussi appréciée.
Bonnes fêtes de fin d'année encore.
Jack
..
double clique dans une des feuilles choisis un trimestre et une des deux
listes
Amm ou Kb c'est celle là qui sera assignée à la celule F1 de la feuille
trimestrielle choisie.
je ne vais pas mettre une copie écran qui ferait paraître les noms
Contacte moi en bal perso si tu veux enlève "le" devant et relmplace frite
par free
JK a écrit :Toujours le même souci (suis également en version 2003).
A la réception du fichier,
- sur la feuille "1er trimestre" => liste déroulante personnel KB
- sur la feuille "2ème trimestre" => liste déroulante personnel KB
- sur la feuille "3ème trimestre" => liste déroulante personnel Amm
- sur la feuille "4ème trimestre" => liste déroulante personnel Amm
Toujours même message d'erreur ==> voir fichiers joints
http://cjoint.com/?bbux35PjCg
http://cjoint.com/?bbuyMRzvls
A+ et merci encore pour ton aide précieuse
Jack
"LSteph" a écrit dans le message de groupe de
discussion :Curieux, chez moi(2003) il fonctionne impec!
et je n'arrive pas à reproduire l'erreur dont tu parles.
> une liste déroulante comprenant uniquement la liste du personnel
> d'Ammerschwihr.
La liste s'adapte en fonction du dernier choix.
je te le remets au cas où:
http://cjoint.com/?bbtCKK4Pdm
JK a écrit :En rechargeant le fichier, j'ai refait des essais.
Le userform 2 ne s'ouvre pas mais j'ai à la cellule F1 de chaque
feuille une liste déroulante comprenant uniquement la liste du
personnel d'Ammerschwihr.
Bizarre ?
A+
Jack
"JK" a écrit dans le message de groupe de
discussion : #As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
Peu importe la feuille dans laquelle je clique, c'est toujours le
userform1 qui s'ouvre.
Bizarre, non ??
A +
Jack
"LSteph" a écrit dans le message de groupe de
discussion :As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
JK a écrit :Merci pour ta prompte réponse.
J'ai un message d'erreur en lançant ta macro :
"Erreur exécution '9' - L'indice n'appartient pas à la sélection
En cliquant sur "débogage", je suis renvoyé à la ligne
"Worksheets(sh2).Activate" mis en surbrillance jaune.
Dommage mais ce n'est peut-être pas grand'chose.
A +
Jack
"LSteph" a écrit dans le message de groupe de
discussion : Oeun8a$Bonjour JK et Bonne Année (à tous d'ailleurs)
http://cjoint.com/?bblEPOlCf6
Pour quand le lien n'y sera plus:
j'ai ajouté un userform avec liste mode options et multiselect
Voici les révisions effectuées dans le code:
'''''Module1
Public mylist As Range, sh1 As String, sh2 As String
Sub Selimpression()
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" &
mylist.Address
UserForm2.Show
End Sub
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call Selimpression
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption =
ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''userform2
Private Sub CommandButton1_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
Sheets(sh1).[F1] = .List(i)
Sheets(sh1).PrintOut
End If
Next
End With
Unload Me
End Sub
Private Sub CommandButton2_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
.Selected(i) = Not (.Selected(i))
Next
End With
End Sub
Private Sub UserForm_Initialize()
Dim c As Range
ListBox1.Clear
For Each c In mylist.Cells
ListBox1.AddItem c
Next
End Sub
'lSteph
JK a écrit :Bonjour et bonne année à vous.
Puis-je me permettre une question concernant mon fichier ?
Comment n'imprimer qu'une ou plusieurs feuilles suite au rajout
d'un ou plusieurs noms dans la liste sans avoir à réimprimer toute
la liste ?
Merci encore à vous et plus particulièrement à LSteph
Jack
"JK" a écrit dans le message de groupe
de discussion : #Bonsoir et mille mercis.
C'est GÉNIAL !!!!
Cela fonctionne du tonnerre.
Merci pour ton aide précieuse.
Jack
"LSteph" a écrit dans le message de groupe
de discussion :Bonsoir,
Ca fonctionne mais pour tes soucis il me semble
ca vient de tes listes qui obligent à les redéfinir et appliquer
la macro à la bonne feuille, car ce n'est pas controlé.
Voici une variante si le contexte reste semblable:
http://cjoint.com/?mDbsbtZDOr
''''''''''''''''''''''''''''''''''''
'''''Thisworkbook
Private Sub Workbook_Open()
MsgBox "doublecliquer dans une feuille pour lancer"
End Sub
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object,
ByVal Target As Range, Cancel As Boolean)
Cancel = True
UserForm1.Show
End Sub
'''''
'''''Module1
Sub impression(sh1 As String, sh2 As String)
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" &
mylist.Address
For Each c In mylist.Cells
Sheets(sh1).[f1] = c
Sheets(sh1).PrintOut
Next
End Sub
'''''
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range, mylist As Range, sh1 As String, sh2 As String
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call impression(sh1, sh2)
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption =
ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''
''''''''''''''''''''''''''''''''
'lSteph
JK a écrit :Bonsoir,
Je m'en remets à vos lumières car je m'arrache la tête.
Dans le fichier joint ( http://cjoint.com/?mCuVVDlN1p ), j'ai
un souci de code VBA.
En effet, dans ce fichier, il y a 4 onglets pour une année et 2
onglets avec 2 listes de personnel.
Le code VBA (fourni par ce forum) fonctionnait à merveille mais
il ne veut plus !!
Il devait puiser tous les noms des listes respectives et
imprimer pour chaque nom l'onglet "1er trimestre" par exemple.
Bizarrement, le pas-à-pas détaillé (F8 dans le module VBA)
fonctionne mais le code ne exécute pas au lancement de la
macro.
Il donne une erreur VBA (manque un objet).
Le problème est également qu'au fur et à mesure des
fluctuations de personnel, ces 2 listes bougent et j'étais
obligé à chaque fois de les renommer.
C'est pourquoi il y a un nombre conséquents de noms de liste
impossibles à supprimer d'une part et la difficulté d'exécuter
mes 2 macros.
Merci pour votre aide toujours aussi appréciée.
Bonnes fêtes de fin d'année encore.
Jack
..
double clique dans une des feuilles choisis un trimestre et une des deux
listes
Amm ou Kb c'est celle là qui sera assignée à la celule F1 de la feuille
trimestrielle choisie.
je ne vais pas mettre une copie écran qui ferait paraître les noms
Contacte moi en bal perso si tu veux enlève "le" devant et relmplace frite
par free
JK a écrit :
Toujours le même souci (suis également en version 2003).
A la réception du fichier,
- sur la feuille "1er trimestre" => liste déroulante personnel KB
- sur la feuille "2ème trimestre" => liste déroulante personnel KB
- sur la feuille "3ème trimestre" => liste déroulante personnel Amm
- sur la feuille "4ème trimestre" => liste déroulante personnel Amm
Toujours même message d'erreur ==> voir fichiers joints
http://cjoint.com/?bbux35PjCg
http://cjoint.com/?bbuyMRzvls
A+ et merci encore pour ton aide précieuse
Jack
"LSteph" <lecocosteph@frite.fr> a écrit dans le message de groupe de
discussion : ez3tKhDbJHA.1336@TK2MSFTNGP02.phx.gbl...
Curieux, chez moi(2003) il fonctionne impec!
et je n'arrive pas à reproduire l'erreur dont tu parles.
> une liste déroulante comprenant uniquement la liste du personnel
> d'Ammerschwihr.
La liste s'adapte en fonction du dernier choix.
je te le remets au cas où:
http://cjoint.com/?bbtCKK4Pdm
JK a écrit :
En rechargeant le fichier, j'ai refait des essais.
Le userform 2 ne s'ouvre pas mais j'ai à la cellule F1 de chaque
feuille une liste déroulante comprenant uniquement la liste du
personnel d'Ammerschwihr.
Bizarre ?
A+
Jack
"JK" <killian.jacky@wanadoo.fr> a écrit dans le message de groupe de
discussion : #I8K4ODbJHA.1676@TK2MSFTNGP03.phx.gbl...
As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
Peu importe la feuille dans laquelle je clique, c'est toujours le
userform1 qui s'ouvre.
Bizarre, non ??
A +
Jack
"LSteph" <lecocosteph@frite.fr> a écrit dans le message de groupe de
discussion : OTQx5RCbJHA.4080@TK2MSFTNGP02.phx.gbl...
As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
JK a écrit :
Merci pour ta prompte réponse.
J'ai un message d'erreur en lançant ta macro :
"Erreur exécution '9' - L'indice n'appartient pas à la sélection
En cliquant sur "débogage", je suis renvoyé à la ligne
"Worksheets(sh2).Activate" mis en surbrillance jaune.
Dommage mais ce n'est peut-être pas grand'chose.
A +
Jack
"LSteph" <lecocosteph@frite.fr> a écrit dans le message de groupe de
discussion : Oeun8a$aJHA.1532@TK2MSFTNGP03.phx.gbl...
Bonjour JK et Bonne Année (à tous d'ailleurs)
http://cjoint.com/?bblEPOlCf6
Pour quand le lien n'y sera plus:
j'ai ajouté un userform avec liste mode options et multiselect
Voici les révisions effectuées dans le code:
'''''Module1
Public mylist As Range, sh1 As String, sh2 As String
Sub Selimpression()
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" &
mylist.Address
UserForm2.Show
End Sub
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call Selimpression
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption =
ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''userform2
Private Sub CommandButton1_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
Sheets(sh1).[F1] = .List(i)
Sheets(sh1).PrintOut
End If
Next
End With
Unload Me
End Sub
Private Sub CommandButton2_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
.Selected(i) = Not (.Selected(i))
Next
End With
End Sub
Private Sub UserForm_Initialize()
Dim c As Range
ListBox1.Clear
For Each c In mylist.Cells
ListBox1.AddItem c
Next
End Sub
'lSteph
JK a écrit :
Bonjour et bonne année à vous.
Puis-je me permettre une question concernant mon fichier ?
Comment n'imprimer qu'une ou plusieurs feuilles suite au rajout
d'un ou plusieurs noms dans la liste sans avoir à réimprimer toute
la liste ?
Merci encore à vous et plus particulièrement à LSteph
Jack
"JK" <killian.jacky@wanadoo.fr> a écrit dans le message de groupe
de discussion : #bo1mZraJHA.4276@TK2MSFTNGP05.phx.gbl...
Bonsoir et mille mercis.
C'est GÉNIAL !!!!
Cela fonctionne du tonnerre.
Merci pour ton aide précieuse.
Jack
"LSteph" <lecocosteph@frite.fr> a écrit dans le message de groupe
de discussion : eZiBhSUaJHA.1184@TK2MSFTNGP05.phx.gbl...
Bonsoir,
Ca fonctionne mais pour tes soucis il me semble
ca vient de tes listes qui obligent à les redéfinir et appliquer
la macro à la bonne feuille, car ce n'est pas controlé.
Voici une variante si le contexte reste semblable:
http://cjoint.com/?mDbsbtZDOr
''''''''''''''''''''''''''''''''''''
'''''Thisworkbook
Private Sub Workbook_Open()
MsgBox "doublecliquer dans une feuille pour lancer"
End Sub
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object,
ByVal Target As Range, Cancel As Boolean)
Cancel = True
UserForm1.Show
End Sub
'''''
'''''Module1
Sub impression(sh1 As String, sh2 As String)
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" &
mylist.Address
For Each c In mylist.Cells
Sheets(sh1).[f1] = c
Sheets(sh1).PrintOut
Next
End Sub
'''''
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range, mylist As Range, sh1 As String, sh2 As String
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call impression(sh1, sh2)
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption =
ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''
''''''''''''''''''''''''''''''''
'lSteph
JK a écrit :
Bonsoir,
Je m'en remets à vos lumières car je m'arrache la tête.
Dans le fichier joint ( http://cjoint.com/?mCuVVDlN1p ), j'ai
un souci de code VBA.
En effet, dans ce fichier, il y a 4 onglets pour une année et 2
onglets avec 2 listes de personnel.
Le code VBA (fourni par ce forum) fonctionnait à merveille mais
il ne veut plus !!
Il devait puiser tous les noms des listes respectives et
imprimer pour chaque nom l'onglet "1er trimestre" par exemple.
Bizarrement, le pas-à-pas détaillé (F8 dans le module VBA)
fonctionne mais le code ne exécute pas au lancement de la
macro.
Il donne une erreur VBA (manque un objet).
Le problème est également qu'au fur et à mesure des
fluctuations de personnel, ces 2 listes bougent et j'étais
obligé à chaque fois de les renommer.
C'est pourquoi il y a un nombre conséquents de noms de liste
impossibles à supprimer d'une part et la difficulté d'exécuter
mes 2 macros.
Merci pour votre aide toujours aussi appréciée.
Bonnes fêtes de fin d'année encore.
Jack
..
double clique dans une des feuilles choisis un trimestre et une des deux
listes
Amm ou Kb c'est celle là qui sera assignée à la celule F1 de la feuille
trimestrielle choisie.
je ne vais pas mettre une copie écran qui ferait paraître les noms
Contacte moi en bal perso si tu veux enlève "le" devant et relmplace frite
par free
JK a écrit :Toujours le même souci (suis également en version 2003).
A la réception du fichier,
- sur la feuille "1er trimestre" => liste déroulante personnel KB
- sur la feuille "2ème trimestre" => liste déroulante personnel KB
- sur la feuille "3ème trimestre" => liste déroulante personnel Amm
- sur la feuille "4ème trimestre" => liste déroulante personnel Amm
Toujours même message d'erreur ==> voir fichiers joints
http://cjoint.com/?bbux35PjCg
http://cjoint.com/?bbuyMRzvls
A+ et merci encore pour ton aide précieuse
Jack
"LSteph" a écrit dans le message de groupe de
discussion :Curieux, chez moi(2003) il fonctionne impec!
et je n'arrive pas à reproduire l'erreur dont tu parles.
> une liste déroulante comprenant uniquement la liste du personnel
> d'Ammerschwihr.
La liste s'adapte en fonction du dernier choix.
je te le remets au cas où:
http://cjoint.com/?bbtCKK4Pdm
JK a écrit :En rechargeant le fichier, j'ai refait des essais.
Le userform 2 ne s'ouvre pas mais j'ai à la cellule F1 de chaque
feuille une liste déroulante comprenant uniquement la liste du
personnel d'Ammerschwihr.
Bizarre ?
A+
Jack
"JK" a écrit dans le message de groupe de
discussion : #As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
Peu importe la feuille dans laquelle je clique, c'est toujours le
userform1 qui s'ouvre.
Bizarre, non ??
A +
Jack
"LSteph" a écrit dans le message de groupe de
discussion :As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
JK a écrit :Merci pour ta prompte réponse.
J'ai un message d'erreur en lançant ta macro :
"Erreur exécution '9' - L'indice n'appartient pas à la sélection
En cliquant sur "débogage", je suis renvoyé à la ligne
"Worksheets(sh2).Activate" mis en surbrillance jaune.
Dommage mais ce n'est peut-être pas grand'chose.
A +
Jack
"LSteph" a écrit dans le message de groupe de
discussion : Oeun8a$Bonjour JK et Bonne Année (à tous d'ailleurs)
http://cjoint.com/?bblEPOlCf6
Pour quand le lien n'y sera plus:
j'ai ajouté un userform avec liste mode options et multiselect
Voici les révisions effectuées dans le code:
'''''Module1
Public mylist As Range, sh1 As String, sh2 As String
Sub Selimpression()
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" &
mylist.Address
UserForm2.Show
End Sub
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call Selimpression
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption =
ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''userform2
Private Sub CommandButton1_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
Sheets(sh1).[F1] = .List(i)
Sheets(sh1).PrintOut
End If
Next
End With
Unload Me
End Sub
Private Sub CommandButton2_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
.Selected(i) = Not (.Selected(i))
Next
End With
End Sub
Private Sub UserForm_Initialize()
Dim c As Range
ListBox1.Clear
For Each c In mylist.Cells
ListBox1.AddItem c
Next
End Sub
'lSteph
JK a écrit :Bonjour et bonne année à vous.
Puis-je me permettre une question concernant mon fichier ?
Comment n'imprimer qu'une ou plusieurs feuilles suite au rajout
d'un ou plusieurs noms dans la liste sans avoir à réimprimer toute
la liste ?
Merci encore à vous et plus particulièrement à LSteph
Jack
"JK" a écrit dans le message de groupe
de discussion : #Bonsoir et mille mercis.
C'est GÉNIAL !!!!
Cela fonctionne du tonnerre.
Merci pour ton aide précieuse.
Jack
"LSteph" a écrit dans le message de groupe
de discussion :Bonsoir,
Ca fonctionne mais pour tes soucis il me semble
ca vient de tes listes qui obligent à les redéfinir et appliquer
la macro à la bonne feuille, car ce n'est pas controlé.
Voici une variante si le contexte reste semblable:
http://cjoint.com/?mDbsbtZDOr
''''''''''''''''''''''''''''''''''''
'''''Thisworkbook
Private Sub Workbook_Open()
MsgBox "doublecliquer dans une feuille pour lancer"
End Sub
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object,
ByVal Target As Range, Cancel As Boolean)
Cancel = True
UserForm1.Show
End Sub
'''''
'''''Module1
Sub impression(sh1 As String, sh2 As String)
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" &
mylist.Address
For Each c In mylist.Cells
Sheets(sh1).[f1] = c
Sheets(sh1).PrintOut
Next
End Sub
'''''
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range, mylist As Range, sh1 As String, sh2 As String
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call impression(sh1, sh2)
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption =
ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''
''''''''''''''''''''''''''''''''
'lSteph
JK a écrit :Bonsoir,
Je m'en remets à vos lumières car je m'arrache la tête.
Dans le fichier joint ( http://cjoint.com/?mCuVVDlN1p ), j'ai
un souci de code VBA.
En effet, dans ce fichier, il y a 4 onglets pour une année et 2
onglets avec 2 listes de personnel.
Le code VBA (fourni par ce forum) fonctionnait à merveille mais
il ne veut plus !!
Il devait puiser tous les noms des listes respectives et
imprimer pour chaque nom l'onglet "1er trimestre" par exemple.
Bizarrement, le pas-à-pas détaillé (F8 dans le module VBA)
fonctionne mais le code ne exécute pas au lancement de la
macro.
Il donne une erreur VBA (manque un objet).
Le problème est également qu'au fur et à mesure des
fluctuations de personnel, ces 2 listes bougent et j'étais
obligé à chaque fois de les renommer.
C'est pourquoi il y a un nombre conséquents de noms de liste
impossibles à supprimer d'une part et la difficulté d'exécuter
mes 2 macros.
Merci pour votre aide toujours aussi appréciée.
Bonnes fêtes de fin d'année encore.
Jack
J'ai enfin compris que j'avais loupé une étape.
Je ne savais pas que les 2 userforms étaient liés.
Je n'avais pas osé cliquer sur "imprimer" car je pensais que cela
lançait l'impression totale de la liste choisie.
Merci à toi pour ta patience !!
A +
Jack
"LSteph" a écrit dans le message de groupe de
discussion :..
double clique dans une des feuilles choisis un trimestre et une des
deux listes
Amm ou Kb c'est celle là qui sera assignée à la celule F1 de la
feuille trimestrielle choisie.
je ne vais pas mettre une copie écran qui ferait paraître les noms
Contacte moi en bal perso si tu veux enlève "le" devant et relmplace
frite par free
JK a écrit :Toujours le même souci (suis également en version 2003).
A la réception du fichier,
- sur la feuille "1er trimestre" => liste déroulante personnel KB
- sur la feuille "2ème trimestre" => liste déroulante personnel KB
- sur la feuille "3ème trimestre" => liste déroulante personnel Amm
- sur la feuille "4ème trimestre" => liste déroulante personnel Amm
Toujours même message d'erreur ==> voir fichiers joints
http://cjoint.com/?bbux35PjCg
http://cjoint.com/?bbuyMRzvls
A+ et merci encore pour ton aide précieuse
Jack
"LSteph" a écrit dans le message de groupe de
discussion :Curieux, chez moi(2003) il fonctionne impec!
et je n'arrive pas à reproduire l'erreur dont tu parles.
> une liste déroulante comprenant uniquement la liste du personnel
> d'Ammerschwihr.
La liste s'adapte en fonction du dernier choix.
je te le remets au cas où:
http://cjoint.com/?bbtCKK4Pdm
JK a écrit :En rechargeant le fichier, j'ai refait des essais.
Le userform 2 ne s'ouvre pas mais j'ai à la cellule F1 de chaque
feuille une liste déroulante comprenant uniquement la liste du
personnel d'Ammerschwihr.
Bizarre ?
A+
Jack
"JK" a écrit dans le message de groupe
de discussion : #As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
Peu importe la feuille dans laquelle je clique, c'est toujours le
userform1 qui s'ouvre.
Bizarre, non ??
A +
Jack
"LSteph" a écrit dans le message de groupe
de discussion :As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
JK a écrit :Merci pour ta prompte réponse.
J'ai un message d'erreur en lançant ta macro :
"Erreur exécution '9' - L'indice n'appartient pas à la sélection
En cliquant sur "débogage", je suis renvoyé à la ligne
"Worksheets(sh2).Activate" mis en surbrillance jaune.
Dommage mais ce n'est peut-être pas grand'chose.
A +
Jack
"LSteph" a écrit dans le message de
groupe de discussion : Oeun8a$Bonjour JK et Bonne Année (à tous d'ailleurs)
http://cjoint.com/?bblEPOlCf6
Pour quand le lien n'y sera plus:
j'ai ajouté un userform avec liste mode options et multiselect
Voici les révisions effectuées dans le code:
'''''Module1
Public mylist As Range, sh1 As String, sh2 As String
Sub Selimpression()
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" &
mylist.Address
UserForm2.Show
End Sub
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call Selimpression
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption =
ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''userform2
Private Sub CommandButton1_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
Sheets(sh1).[F1] = .List(i)
Sheets(sh1).PrintOut
End If
Next
End With
Unload Me
End Sub
Private Sub CommandButton2_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
.Selected(i) = Not (.Selected(i))
Next
End With
End Sub
Private Sub UserForm_Initialize()
Dim c As Range
ListBox1.Clear
For Each c In mylist.Cells
ListBox1.AddItem c
Next
End Sub
'lSteph
JK a écrit :Bonjour et bonne année à vous.
Puis-je me permettre une question concernant mon fichier ?
Comment n'imprimer qu'une ou plusieurs feuilles suite au
rajout d'un ou plusieurs noms dans la liste sans avoir à
réimprimer toute la liste ?
Merci encore à vous et plus particulièrement à LSteph
Jack
"JK" a écrit dans le message de
groupe de discussion : #Bonsoir et mille mercis.
C'est GÉNIAL !!!!
Cela fonctionne du tonnerre.
Merci pour ton aide précieuse.
Jack
"LSteph" a écrit dans le message de
groupe de discussion :Bonsoir,
Ca fonctionne mais pour tes soucis il me semble
ca vient de tes listes qui obligent à les redéfinir et
appliquer la macro à la bonne feuille, car ce n'est pas
controlé.
Voici une variante si le contexte reste semblable:
http://cjoint.com/?mDbsbtZDOr
''''''''''''''''''''''''''''''''''''
'''''Thisworkbook
Private Sub Workbook_Open()
MsgBox "doublecliquer dans une feuille pour lancer"
End Sub
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As
Object, ByVal Target As Range, Cancel As Boolean)
Cancel = True
UserForm1.Show
End Sub
'''''
'''''Module1
Sub impression(sh1 As String, sh2 As String)
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" &
mylist.Address
For Each c In mylist.Cells
Sheets(sh1).[f1] = c
Sheets(sh1).PrintOut
Next
End Sub
'''''
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range, mylist As Range, sh1 As String, sh2 As String
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call impression(sh1, sh2)
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption =
ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''
''''''''''''''''''''''''''''''''
'lSteph
JK a écrit :Bonsoir,
Je m'en remets à vos lumières car je m'arrache la tête.
Dans le fichier joint ( http://cjoint.com/?mCuVVDlN1p ),
j'ai un souci de code VBA.
En effet, dans ce fichier, il y a 4 onglets pour une année
et 2 onglets avec 2 listes de personnel.
Le code VBA (fourni par ce forum) fonctionnait à merveille
mais il ne veut plus !!
Il devait puiser tous les noms des listes respectives et
imprimer pour chaque nom l'onglet "1er trimestre" par exemple.
Bizarrement, le pas-à-pas détaillé (F8 dans le module VBA)
fonctionne mais le code ne exécute pas au lancement de la
macro.
Il donne une erreur VBA (manque un objet).
Le problème est également qu'au fur et à mesure des
fluctuations de personnel, ces 2 listes bougent et j'étais
obligé à chaque fois de les renommer.
C'est pourquoi il y a un nombre conséquents de noms de
liste impossibles à supprimer d'une part et la difficulté
d'exécuter mes 2 macros.
Merci pour votre aide toujours aussi appréciée.
Bonnes fêtes de fin d'année encore.
Jack
J'ai enfin compris que j'avais loupé une étape.
Je ne savais pas que les 2 userforms étaient liés.
Je n'avais pas osé cliquer sur "imprimer" car je pensais que cela
lançait l'impression totale de la liste choisie.
Merci à toi pour ta patience !!
A +
Jack
"LSteph" <lecocosteph@frite.fr> a écrit dans le message de groupe de
discussion : OHTT4wEbJHA.1336@TK2MSFTNGP02.phx.gbl...
..
double clique dans une des feuilles choisis un trimestre et une des
deux listes
Amm ou Kb c'est celle là qui sera assignée à la celule F1 de la
feuille trimestrielle choisie.
je ne vais pas mettre une copie écran qui ferait paraître les noms
Contacte moi en bal perso si tu veux enlève "le" devant et relmplace
frite par free
JK a écrit :
Toujours le même souci (suis également en version 2003).
A la réception du fichier,
- sur la feuille "1er trimestre" => liste déroulante personnel KB
- sur la feuille "2ème trimestre" => liste déroulante personnel KB
- sur la feuille "3ème trimestre" => liste déroulante personnel Amm
- sur la feuille "4ème trimestre" => liste déroulante personnel Amm
Toujours même message d'erreur ==> voir fichiers joints
http://cjoint.com/?bbux35PjCg
http://cjoint.com/?bbuyMRzvls
A+ et merci encore pour ton aide précieuse
Jack
"LSteph" <lecocosteph@frite.fr> a écrit dans le message de groupe de
discussion : ez3tKhDbJHA.1336@TK2MSFTNGP02.phx.gbl...
Curieux, chez moi(2003) il fonctionne impec!
et je n'arrive pas à reproduire l'erreur dont tu parles.
> une liste déroulante comprenant uniquement la liste du personnel
> d'Ammerschwihr.
La liste s'adapte en fonction du dernier choix.
je te le remets au cas où:
http://cjoint.com/?bbtCKK4Pdm
JK a écrit :
En rechargeant le fichier, j'ai refait des essais.
Le userform 2 ne s'ouvre pas mais j'ai à la cellule F1 de chaque
feuille une liste déroulante comprenant uniquement la liste du
personnel d'Ammerschwihr.
Bizarre ?
A+
Jack
"JK" <killian.jacky@wanadoo.fr> a écrit dans le message de groupe
de discussion : #I8K4ODbJHA.1676@TK2MSFTNGP03.phx.gbl...
As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
Peu importe la feuille dans laquelle je clique, c'est toujours le
userform1 qui s'ouvre.
Bizarre, non ??
A +
Jack
"LSteph" <lecocosteph@frite.fr> a écrit dans le message de groupe
de discussion : OTQx5RCbJHA.4080@TK2MSFTNGP02.phx.gbl...
As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
JK a écrit :
Merci pour ta prompte réponse.
J'ai un message d'erreur en lançant ta macro :
"Erreur exécution '9' - L'indice n'appartient pas à la sélection
En cliquant sur "débogage", je suis renvoyé à la ligne
"Worksheets(sh2).Activate" mis en surbrillance jaune.
Dommage mais ce n'est peut-être pas grand'chose.
A +
Jack
"LSteph" <lecocosteph@frite.fr> a écrit dans le message de
groupe de discussion : Oeun8a$aJHA.1532@TK2MSFTNGP03.phx.gbl...
Bonjour JK et Bonne Année (à tous d'ailleurs)
http://cjoint.com/?bblEPOlCf6
Pour quand le lien n'y sera plus:
j'ai ajouté un userform avec liste mode options et multiselect
Voici les révisions effectuées dans le code:
'''''Module1
Public mylist As Range, sh1 As String, sh2 As String
Sub Selimpression()
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" &
mylist.Address
UserForm2.Show
End Sub
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call Selimpression
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption =
ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''userform2
Private Sub CommandButton1_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
Sheets(sh1).[F1] = .List(i)
Sheets(sh1).PrintOut
End If
Next
End With
Unload Me
End Sub
Private Sub CommandButton2_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
.Selected(i) = Not (.Selected(i))
Next
End With
End Sub
Private Sub UserForm_Initialize()
Dim c As Range
ListBox1.Clear
For Each c In mylist.Cells
ListBox1.AddItem c
Next
End Sub
'lSteph
JK a écrit :
Bonjour et bonne année à vous.
Puis-je me permettre une question concernant mon fichier ?
Comment n'imprimer qu'une ou plusieurs feuilles suite au
rajout d'un ou plusieurs noms dans la liste sans avoir à
réimprimer toute la liste ?
Merci encore à vous et plus particulièrement à LSteph
Jack
"JK" <killian.jacky@wanadoo.fr> a écrit dans le message de
groupe de discussion : #bo1mZraJHA.4276@TK2MSFTNGP05.phx.gbl...
Bonsoir et mille mercis.
C'est GÉNIAL !!!!
Cela fonctionne du tonnerre.
Merci pour ton aide précieuse.
Jack
"LSteph" <lecocosteph@frite.fr> a écrit dans le message de
groupe de discussion : eZiBhSUaJHA.1184@TK2MSFTNGP05.phx.gbl...
Bonsoir,
Ca fonctionne mais pour tes soucis il me semble
ca vient de tes listes qui obligent à les redéfinir et
appliquer la macro à la bonne feuille, car ce n'est pas
controlé.
Voici une variante si le contexte reste semblable:
http://cjoint.com/?mDbsbtZDOr
''''''''''''''''''''''''''''''''''''
'''''Thisworkbook
Private Sub Workbook_Open()
MsgBox "doublecliquer dans une feuille pour lancer"
End Sub
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As
Object, ByVal Target As Range, Cancel As Boolean)
Cancel = True
UserForm1.Show
End Sub
'''''
'''''Module1
Sub impression(sh1 As String, sh2 As String)
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" &
mylist.Address
For Each c In mylist.Cells
Sheets(sh1).[f1] = c
Sheets(sh1).PrintOut
Next
End Sub
'''''
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range, mylist As Range, sh1 As String, sh2 As String
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call impression(sh1, sh2)
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption =
ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''
''''''''''''''''''''''''''''''''
'lSteph
JK a écrit :
Bonsoir,
Je m'en remets à vos lumières car je m'arrache la tête.
Dans le fichier joint ( http://cjoint.com/?mCuVVDlN1p ),
j'ai un souci de code VBA.
En effet, dans ce fichier, il y a 4 onglets pour une année
et 2 onglets avec 2 listes de personnel.
Le code VBA (fourni par ce forum) fonctionnait à merveille
mais il ne veut plus !!
Il devait puiser tous les noms des listes respectives et
imprimer pour chaque nom l'onglet "1er trimestre" par exemple.
Bizarrement, le pas-à-pas détaillé (F8 dans le module VBA)
fonctionne mais le code ne exécute pas au lancement de la
macro.
Il donne une erreur VBA (manque un objet).
Le problème est également qu'au fur et à mesure des
fluctuations de personnel, ces 2 listes bougent et j'étais
obligé à chaque fois de les renommer.
C'est pourquoi il y a un nombre conséquents de noms de
liste impossibles à supprimer d'une part et la difficulté
d'exécuter mes 2 macros.
Merci pour votre aide toujours aussi appréciée.
Bonnes fêtes de fin d'année encore.
Jack
J'ai enfin compris que j'avais loupé une étape.
Je ne savais pas que les 2 userforms étaient liés.
Je n'avais pas osé cliquer sur "imprimer" car je pensais que cela
lançait l'impression totale de la liste choisie.
Merci à toi pour ta patience !!
A +
Jack
"LSteph" a écrit dans le message de groupe de
discussion :..
double clique dans une des feuilles choisis un trimestre et une des
deux listes
Amm ou Kb c'est celle là qui sera assignée à la celule F1 de la
feuille trimestrielle choisie.
je ne vais pas mettre une copie écran qui ferait paraître les noms
Contacte moi en bal perso si tu veux enlève "le" devant et relmplace
frite par free
JK a écrit :Toujours le même souci (suis également en version 2003).
A la réception du fichier,
- sur la feuille "1er trimestre" => liste déroulante personnel KB
- sur la feuille "2ème trimestre" => liste déroulante personnel KB
- sur la feuille "3ème trimestre" => liste déroulante personnel Amm
- sur la feuille "4ème trimestre" => liste déroulante personnel Amm
Toujours même message d'erreur ==> voir fichiers joints
http://cjoint.com/?bbux35PjCg
http://cjoint.com/?bbuyMRzvls
A+ et merci encore pour ton aide précieuse
Jack
"LSteph" a écrit dans le message de groupe de
discussion :Curieux, chez moi(2003) il fonctionne impec!
et je n'arrive pas à reproduire l'erreur dont tu parles.
> une liste déroulante comprenant uniquement la liste du personnel
> d'Ammerschwihr.
La liste s'adapte en fonction du dernier choix.
je te le remets au cas où:
http://cjoint.com/?bbtCKK4Pdm
JK a écrit :En rechargeant le fichier, j'ai refait des essais.
Le userform 2 ne s'ouvre pas mais j'ai à la cellule F1 de chaque
feuille une liste déroulante comprenant uniquement la liste du
personnel d'Ammerschwihr.
Bizarre ?
A+
Jack
"JK" a écrit dans le message de groupe
de discussion : #As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
Peu importe la feuille dans laquelle je clique, c'est toujours le
userform1 qui s'ouvre.
Bizarre, non ??
A +
Jack
"LSteph" a écrit dans le message de groupe
de discussion :As tu bien utilisé le classeur que j'ai mis en lien? ==> oui
Es-tu bien passé par le doubleclic dans la feuille? ==> oui
As-tu changé ajouté supprimé des feuilles? ==> non
JK a écrit :Merci pour ta prompte réponse.
J'ai un message d'erreur en lançant ta macro :
"Erreur exécution '9' - L'indice n'appartient pas à la sélection
En cliquant sur "débogage", je suis renvoyé à la ligne
"Worksheets(sh2).Activate" mis en surbrillance jaune.
Dommage mais ce n'est peut-être pas grand'chose.
A +
Jack
"LSteph" a écrit dans le message de
groupe de discussion : Oeun8a$Bonjour JK et Bonne Année (à tous d'ailleurs)
http://cjoint.com/?bblEPOlCf6
Pour quand le lien n'y sera plus:
j'ai ajouté un userform avec liste mode options et multiselect
Voici les révisions effectuées dans le code:
'''''Module1
Public mylist As Range, sh1 As String, sh2 As String
Sub Selimpression()
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" &
mylist.Address
UserForm2.Show
End Sub
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call Selimpression
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption =
ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''userform2
Private Sub CommandButton1_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
Sheets(sh1).[F1] = .List(i)
Sheets(sh1).PrintOut
End If
Next
End With
Unload Me
End Sub
Private Sub CommandButton2_Click()
Dim i As Long
With ListBox1
For i = 0 To .ListCount - 1
.Selected(i) = Not (.Selected(i))
Next
End With
End Sub
Private Sub UserForm_Initialize()
Dim c As Range
ListBox1.Clear
For Each c In mylist.Cells
ListBox1.AddItem c
Next
End Sub
'lSteph
JK a écrit :Bonjour et bonne année à vous.
Puis-je me permettre une question concernant mon fichier ?
Comment n'imprimer qu'une ou plusieurs feuilles suite au
rajout d'un ou plusieurs noms dans la liste sans avoir à
réimprimer toute la liste ?
Merci encore à vous et plus particulièrement à LSteph
Jack
"JK" a écrit dans le message de
groupe de discussion : #Bonsoir et mille mercis.
C'est GÉNIAL !!!!
Cela fonctionne du tonnerre.
Merci pour ton aide précieuse.
Jack
"LSteph" a écrit dans le message de
groupe de discussion :Bonsoir,
Ca fonctionne mais pour tes soucis il me semble
ca vient de tes listes qui obligent à les redéfinir et
appliquer la macro à la bonne feuille, car ce n'est pas
controlé.
Voici une variante si le contexte reste semblable:
http://cjoint.com/?mDbsbtZDOr
''''''''''''''''''''''''''''''''''''
'''''Thisworkbook
Private Sub Workbook_Open()
MsgBox "doublecliquer dans une feuille pour lancer"
End Sub
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As
Object, ByVal Target As Range, Cancel As Boolean)
Cancel = True
UserForm1.Show
End Sub
'''''
'''''Module1
Sub impression(sh1 As String, sh2 As String)
Unload UserForm1
Worksheets(sh2).Activate
Application.ScreenUpdating = False
Set mylist = Range("g1:g" & [g65536].End(xlUp).Row)
ThisWorkbook.Names.Add Name:="lalist", RefersTo:="=" &
mylist.Address
For Each c In mylist.Cells
Sheets(sh1).[f1] = c
Sheets(sh1).PrintOut
Next
End Sub
'''''
'''''userform1
Private Sub CommandButton1_Click()
Dim c As Range, mylist As Range, sh1 As String, sh2 As String
For i = 1 To 6
With Me.Controls("OptionButton" & i)
If i < 5 Then
If .Value Then sh1 = .Caption
Else
If .Value Then sh2 = .Caption
End If
End With
Next
Call impression(sh1, sh2)
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Choix d'impression"
For i = 1 To 6
Me.Controls("OptionButton" & i).Caption =
ThisWorkbook.Sheets(i).Name
Next
CommandButton1.Caption = "Imprimer"
OptionButton1 = True
OptionButton5 = True
End Sub
'''''
''''''''''''''''''''''''''''''''
'lSteph
JK a écrit :Bonsoir,
Je m'en remets à vos lumières car je m'arrache la tête.
Dans le fichier joint ( http://cjoint.com/?mCuVVDlN1p ),
j'ai un souci de code VBA.
En effet, dans ce fichier, il y a 4 onglets pour une année
et 2 onglets avec 2 listes de personnel.
Le code VBA (fourni par ce forum) fonctionnait à merveille
mais il ne veut plus !!
Il devait puiser tous les noms des listes respectives et
imprimer pour chaque nom l'onglet "1er trimestre" par exemple.
Bizarrement, le pas-à-pas détaillé (F8 dans le module VBA)
fonctionne mais le code ne exécute pas au lancement de la
macro.
Il donne une erreur VBA (manque un objet).
Le problème est également qu'au fur et à mesure des
fluctuations de personnel, ces 2 listes bougent et j'étais
obligé à chaque fois de les renommer.
C'est pourquoi il y a un nombre conséquents de noms de
liste impossibles à supprimer d'une part et la difficulté
d'exécuter mes 2 macros.
Merci pour votre aide toujours aussi appréciée.
Bonnes fêtes de fin d'année encore.
Jack