B
bichon
Guest
Bonjour a toutes et a tous les excelliens
je vous expose mon souhait:
voila j'ai 2 listbox la premiere contient des elements que je selectionne dans la 2eme
ces elements sont des classeurs excel et j'aimerai pouvoir imprimer les classeurs que j'ai selectionné
dans ma 2eme listbox(si possible sans les ouvrir mais bon)
voila donc chaque classeur correspond a une feuille excel donc si jai 5 element dans ma listbox2 je voudrais
imprimer donc 5 feuilles.
pour l'instant ma 2eme listbox est en multiselect mais si vous pensez que cela est plus simple en singleselect
faite le moi savoir
voici mon code pour l'instant je ne fais que l'ouvrir car la fonction shell ne marche pas$$
' Bouton imprimer
Private Sub CommandButton1_Click()
Dim i As Byte
Dim NomClasseur As String
For i = 1 To Optbase.ListBox2.ListCount
If Optbase.ListBox2.Selected(i - 1) Then
'Allons rechercher l'élément sur la feuille Baseopt:
NomClasseur = Worksheets("Baseopt").Cells.Find(What:=Optbase.ListBox2.List(i - 1), After:=ActiveCell, LookIn _
:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:= _
xlNext, MatchCase:=False).Cells(1, 2)
'Ouvrons le fichier correspondant:
Workbooks.Open FileName:="F:\Metachut2003\Optmet\Fiches\" & NomClasseur
Range("W3").Value = Saisieinfos.TextBox1.Value
Range("R2").Value = Saisieinfos.TextBox2.Value
Range("Y2").Value = Saisieinfos.TextBox3.Value
Range("V2").Value = Saisieinfos.TextBox4.Value
ShellImprime ("F:\Metachut2003\Optmet\Fiches\ & NomClasseur")
End If
Next i
End Sub
dans ce code j'arrive a ouvrir que le 1er element que jai selectionner avec la souris
bien qu'ensuite jai selectionné tout les autres grace au multiselect
les element qui sont dans ma listbox1 sont dans une feuille excel nommé baseopt
je l'ai insere comme suivant :
private sub userform_initialize()
Dim VarDerLigne As Integer
Dim VarPlageList As String
VarDerLigne = Sheets("Baseopt").Range("A5").End(xlDown).Row
VarPlageList = Sheets("Baseopt").Range("A5:A" & VarDerLigne).Address
ListBox1.RowSource = "Baseopt!" & VarPlageList
End Sub
voila mon commande shell se trouve dans un module en voici le code
' Declaration de la fonction shell
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
' Fonction shellprint
Sub Shellprint(NomClasseur)
ShellExecute 0, "print", NomClasseur, "", "F:\Metachut2003\Optmet\Fiches\", 0
End Sub
voila je pense vous avoir tout dis
les textbox dans le 1er code serve a inserer du texte dans certaine cellules des feuilles a
imprimer mais pour l'instant cela ne marche pas.
je remercie enormement ceux qui viendront a mon secours
bichon
je vous expose mon souhait:
voila j'ai 2 listbox la premiere contient des elements que je selectionne dans la 2eme
ces elements sont des classeurs excel et j'aimerai pouvoir imprimer les classeurs que j'ai selectionné
dans ma 2eme listbox(si possible sans les ouvrir mais bon)
voila donc chaque classeur correspond a une feuille excel donc si jai 5 element dans ma listbox2 je voudrais
imprimer donc 5 feuilles.
pour l'instant ma 2eme listbox est en multiselect mais si vous pensez que cela est plus simple en singleselect
faite le moi savoir
voici mon code pour l'instant je ne fais que l'ouvrir car la fonction shell ne marche pas$$
' Bouton imprimer
Private Sub CommandButton1_Click()
Dim i As Byte
Dim NomClasseur As String
For i = 1 To Optbase.ListBox2.ListCount
If Optbase.ListBox2.Selected(i - 1) Then
'Allons rechercher l'élément sur la feuille Baseopt:
NomClasseur = Worksheets("Baseopt").Cells.Find(What:=Optbase.ListBox2.List(i - 1), After:=ActiveCell, LookIn _
:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:= _
xlNext, MatchCase:=False).Cells(1, 2)
'Ouvrons le fichier correspondant:
Workbooks.Open FileName:="F:\Metachut2003\Optmet\Fiches\" & NomClasseur
Range("W3").Value = Saisieinfos.TextBox1.Value
Range("R2").Value = Saisieinfos.TextBox2.Value
Range("Y2").Value = Saisieinfos.TextBox3.Value
Range("V2").Value = Saisieinfos.TextBox4.Value
ShellImprime ("F:\Metachut2003\Optmet\Fiches\ & NomClasseur")
End If
Next i
End Sub
dans ce code j'arrive a ouvrir que le 1er element que jai selectionner avec la souris
bien qu'ensuite jai selectionné tout les autres grace au multiselect
les element qui sont dans ma listbox1 sont dans une feuille excel nommé baseopt
je l'ai insere comme suivant :
private sub userform_initialize()
Dim VarDerLigne As Integer
Dim VarPlageList As String
VarDerLigne = Sheets("Baseopt").Range("A5").End(xlDown).Row
VarPlageList = Sheets("Baseopt").Range("A5:A" & VarDerLigne).Address
ListBox1.RowSource = "Baseopt!" & VarPlageList
End Sub
voila mon commande shell se trouve dans un module en voici le code
' Declaration de la fonction shell
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
' Fonction shellprint
Sub Shellprint(NomClasseur)
ShellExecute 0, "print", NomClasseur, "", "F:\Metachut2003\Optmet\Fiches\", 0
End Sub
voila je pense vous avoir tout dis
les textbox dans le 1er code serve a inserer du texte dans certaine cellules des feuilles a
imprimer mais pour l'instant cela ne marche pas.
je remercie enormement ceux qui viendront a mon secours
bichon