Tiatia63
Messages postés60Date d'inscriptionmardi 12 juin 2007StatutMembreDernière intervention23 décembre 2010
-
4 juil. 2007 à 09:16
Tiatia63
Messages postés60Date d'inscriptionmardi 12 juin 2007StatutMembreDernière intervention23 décembre 2010
-
5 juil. 2007 à 09:51
Bonjour,
Je fais un programme qui me donne une liste box de 8 colonnes avec une "liststyle = fmListStyleOption" qui me permet de cocher une ligne de ma liste box.
Je veux quand je coche la ligne, ça m'ouvre une feuille d'un classeur excel. Je veux donc ouvrir automatiquement le fichier excel (donc excel) puis dans ce fichier ouvrir la feuille dont le nom correspond à la premiere colonne de la listebox (et la ligne que j'ai selectionnée).
J'ai commencé à faire ceci:
Private Sub Fiche_Click()
Dim i As Variant
Dim nuance As String
Shell ("C:\Program Files\Microsoft Office\...\EXCEL.EXE D:\Mes Documents\...programme.xls")
i = 0
For i = 0 To 20
If UsfRésultats.ListBox2.Selected(i) = True Then
nuance = UsfRésultats.ListBox2.List(i)
Sheets("nuance").Activate
Exit For
End If
Next i
End Sub
J'arrive à ouvrir excel mais pas mon fichier "programme.xls". Alors comment faire pour ouvrir automatique ce fichier (que mon programme s'excute sous excel ou ailleurs).
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 4 juil. 2007 à 10:02
Re,
Oui, Tu es donc bien en VBA.
Si tu es directement sous EXCEL, tu n'a aucunement besoin de faire un Shell pour ouvrir ton Fichier Excel.
Sert toi plutot de la collection WorkBooks de l'objet Application.
Regarde ce petit exemple de code.
Private Sub Fiche_Click()
'Variant => Si tu sais que i est un entier
'déclare le directemetn comme tel c'est mieux
Dim i As Integer
Dim nuance As String
'Le classeur que tu vas ouvrir
Dim Wb As Workbook
Set Wb = Application.Workbooks.Open("C:\Program Files\Microsoft Office\...\EXCEL.EXE D:\Mes Documents\...programme.xls")
'i = 0 i déjà initialisé dans la boucle for donc ligne inutile
For i = 0 To 20
If UsfRésultats.ListBox2.Selected(i) Then
nuance = UsfRésultats.ListBox2.List(i)
Wb.Worksheets(nuance).Activate
Exit For
End If
Next i
Tiatia63
Messages postés60Date d'inscriptionmardi 12 juin 2007StatutMembreDernière intervention23 décembre 2010 4 juil. 2007 à 10:10
merci de la réponse ... mais en fait voilà.Moi pour que ce soit plus simple j'ai travaillé dans excel. Mais je veux que ce programme soit exétable sous n'importe quelle application, pas forcement à partir d'excel.
Merci!
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201822 4 juil. 2007 à 11:11
À ce moment, fais une recherche sur
Excel.Application Excel.Workbook pour déclarer et créer une nouvelle instance d'Excel et un objet classeur
Par la suite, tu utilises un bout de code dans le genre de ce que jrivet te propose.
Tu devrais trouver pas mal de bouts de code là-dessus sur ce site.
Tiatia63
Messages postés60Date d'inscriptionmardi 12 juin 2007StatutMembreDernière intervention23 décembre 2010 5 juil. 2007 à 09:19
Bonjour!
Ca y est j'ai réussi!!!
Je vous dit comment j'aifaitsiçavous interesse!
Private Sub Fiche_Click()
Dim i As Variant
Dim nuance As String
Dim fichier As String
Dim programme As String
i = 0
For i = 0 To 20
If UsfRésultats.ListBox2.Selected(i) = True Then
nuance = UsfRésultats.ListBox2.List(i)
Sheets(nuance).Activate
Exit For
End If
Next i
End Sub
Donc ça m'ouvre bien mon fichier .xls et la page que je souhaite mais seul petit truc c'est que la fenetre est réduite et je voudrais quelle s'affiche en grand sur l'écran.
Est ce que vous pourriez m'aider?
Merci!
Tiatia63
Messages postés60Date d'inscriptionmardi 12 juin 2007StatutMembreDernière intervention23 décembre 2010 5 juil. 2007 à 09:51
Ok. Mais en fait la fenetre que je veux est active, agrandie mais caché derriere mon programme!
:-(
Il y a pas une fonction qui dit "mettre au premier plan"?