|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : recherche du fichier excel.exe [ Archives Visual Basic / J'AI BESOIN D'AIDE !!!! :) ] (astridgall)
Informations & options pour cette discussion
|
lundi 13 décembre 2004 à 16:37:34 |
recherche du fichier excel.exe

astridgall
|
bonjour, je souhaite dans mon programme vb6 récupérer le chemin du fichier excel.exe. Je n'ai rien trouvé de concluant sur ce site. Merci d'avance.
|
|
|
|
lundi 13 décembre 2004 à 17:15:58 |
Re : recherche du fichier excel.exe

barley
|
essaye ca, il doit y avoir beaucoup mieux... mais ca marche
'module de crenaud76 pour la fonction shellwait qui permet d'attendre la fin de l'execution avant de continuer la lecture du code Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Const STILL_ACTIVE = &H103 Private Const PROCESS_QUERY_INFORMATION = &H400
Public Sub ShellWait(ByVal JobToDo As String) Dim hProcess As Long, RetVal As Long hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, Shell(JobToDo, vbMinimizedNoFocus)) Do GetExitCodeProcess hProcess, RetVal DoEvents Sleep 100 Loop While RetVal = STILL_ACTIVE End Sub
Private Sub main()
'A initialisation et variables
Dim compteur, compteurlettres, textline, textinv, lettre, nomfichier, objet, objetfichier, fichiersource, repertoire fichiersource = "c:\test.txt" repertoire = "c:\" & Chr(34) & "Program Files" & Chr(34)
'B éxécution de la commande DOS qui écrira tous les fichiers d'un dossier et de ces sous-dossiers dans un fichier source ShellWait "cmd.exe /c dir /A-D /S /O:N /B " & repertoire & " > " & fichiersource 'execute commande DOS et stop la suite du programme tant que la commande DOS n'est pas terminée"
'C module de récupération du chemin de "excel.exe" Open fichiersource For Input As #1 ' Ouvre le fichier source. Do While Not EOF(1) ' Effectue la boucle jusqu'à la fin du fichier source. Line Input #1, textline ' Lit la ligne dans la variable. textinv = StrReverse(textline) ' inverse les caractères du texte de la ligne en cours If Left(textinv, 9) = "EXE.LECXE" Then 'si la fin de la ligne est bien excel.exe alors MsgBox textline End If Loop 'relance la boucle des lignes Close #1 ' Ferme le fichier. 'D module d'effacement du fichier source Set objet = CreateObject("Scripting.FileSystemObject") ' crée un objet Set objetfichier = objet.getfile(fichiersource) 'l'objet devient le fichier source objetfichier.Delete True 'efface et force la suppression du fichier source End Sub
|
|
|
|
lundi 13 décembre 2004 à 17:18:02 |
Re : recherche du fichier excel.exe

barley
|
n'oublie pas d'effacer certaines variables qui te sont inutiles, c'est la reprise d'une appli... j'ai oublier d'enlever des variables
|
|
|
|
lundi 13 décembre 2004 à 17:32:26 |
Re : recherche du fichier excel.exe

barley
|
comme ca , c'est un peu mieux
'module de crenaud76 pour la fonction shellwait qui permet d'attendre la fin de l'execution avant de continuer la lecture du code Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Private Const STILL_ACTIVE = &H103 Private Const PROCESS_QUERY_INFORMATION = &H400 Public Sub ShellWait(ByVal JobToDo As String) Dim hProcess As Long, RetVal As Long hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, Shell(JobToDo, vbMinimizedNoFocus)) Do GetExitCodeProcess hProcess, RetVal DoEvents Sleep 100 Loop While RetVal = STILL_ACTIVE End Sub Private Sub main() 'A initialisation et variables Dim textline, objet, objetfichier, fichiersource, repertoire fichiersource = "c:\test.txt" repertoire = "c:\" fichieratrouver = "excel.exe" 'B éxécution de la commande DOS qui écrira tous les fichiers d'un dossier et de ces sous-dossiers dans un fichier source ShellWait "cmd.exe /c dir /A-D /S /O:N /B /L " & repertoire & " > " & fichiersource 'execute commande DOS et stop la suite du programme tant que la commande DOS n'est pas terminée" 'C module de récupération du chemin de "excel.exe" Open fichiersource For Input As #1 ' Ouvre le fichier source. Do While Not EOF(1) ' Effectue la boucle jusqu'à la fin du fichier source. Line Input #1, textline ' Lit la ligne dans la variable. If Left(StrReverse(textline), Len(fichieratrouver)) = StrReverse(fichieratrouver) Then 'si la fin de la ligne est bien fichieratrouver alors MsgBox textline End If Loop 'relance la boucle des lignes Close #1 ' Ferme le fichier. 'D module d'effacement du fichier source Set objet = CreateObject("Scripting.FileSystemObject") ' crée un objet Set objetfichier = objet.getfile(fichiersource) 'l'objet devient le fichier source objetfichier.Delete True 'efface et force la suppression du fichier source End Sub
si ca va pas, n'hesite pas
|
|
|
|
lundi 13 décembre 2004 à 18:35:44 |
Re : recherche du fichier excel.exe

CanisLupus
|
Une autre solution, en passant par les API's interrogeant la base de registre : ' Dans un module Private Declare Function RegOpenKey _ Lib "advapi32" Alias "RegOpenKeyA" _ ( _ ByVal hKey As Long, _ ByVal lpSubKey As String, _ phkResult As Long _ ) As Long
Private Declare Function RegQueryValueEx _ Lib "advapi32" Alias "RegQueryValueExA" _ ( _ ByVal hKey As Long, _ ByVal lpValueName As String, _ ByVal lpReserved As Long, _ lpType As Long, _ lpData As Any, _ lpcbData As Long _ ) As Long
Public Function GetString(hKey As Long, strPath As String, strValue As String) As String Dim Keyhand As Long, lResult As Long Dim strBuf As String * 255
RegOpenKey hKey, strPath, Keyhand lResult = RegQueryValueEx(Keyhand, strValue, 0&, 0&, ByVal strBuf, 255) If lResult = 0 Then GetString = Split(strBuf, Chr$(0))(0) End Function
' Dans ta form Private Sub Form_Load() Dim s As String s = GetString(&H80000000, "Excel.Application\CLSID", "") s = GetString(&H80000000, "CLSID\" & s & "\LocalServer32", "") s = Trim(Left$(s, InStr(1, s, "/") - 1)) MsgBox s End Sub
|
Explik : d'abord on lit la CLSID de l'appli puis on va lire la localisation de l'exe. le trim .... est là pour zapper les "/automation" et autres paramètres de lancement pour ne récupérer que le chemin. Bien sùr, puisque la CLSID des applis Windows est toujours la même, dans le form_lod on peut juste mettre : Private Sub Form_Load() Dim s As String s = GetString(HKEY_CLASSES_ROOT, "CLSID\{00024500-0000-0000-C000-000000000046}\LocalServer32", "") s = Trim(Left$(s, InStr(1, s, "/") - 1)) MsgBox s End Sub
|
Mais bon, on ne sait jamais et ça prend pas beaucoup plus de temps. Et ça, c'est rapide, ça marche avec VB, VBA et VB.NET, sous win9x et winXP. J'ai testé mais si prob, j'attend les critiques. Cordialement, CanisLupus
|
|
|
|
lundi 13 décembre 2004 à 20:39:00 |
Re : recherche du fichier excel.exe

barley
|
salut canislupus, je viens d'essayer ta technique, ca me parait tres bien, je n'en suis pas encore a ce niveau Par contre, est ce que c'est normal de voir le chemin sous forme "raccourci", exemple:
C:\PROGRA~1\MICROS~4\Office\EXCEL.EXE
et surtout, est ce que ceci est exploitable après... si oui pas de problème moi je dis bravo...
|
|
|
|
lundi 13 décembre 2004 à 20:40:28 |
Re : recherche du fichier excel.exe

barley
|
Je viens d'essayer en rajoutant shell (s), ca marche, donc je m'incline... lol allez, bonne prog a vous
|
|
|
|
lundi 13 décembre 2004 à 23:09:33 |
Re : recherche du fichier excel.exe
|
|
mardi 14 décembre 2004 à 13:35:34 |
Re : recherche du fichier excel.exe

domsig
|
je vais peut-être dire une bêtise mais..........
dim excel_object as object Set excel_object = CreateObject("excel.application") If IsNull(excel_object) Then msgbox("pas trouvé") else msgbox(excel_object.path) 'on peut aussi tester la version d'excel trouvée msgbox(excel_object.version) end if
voilà voilà voilà.....
|
|
|
|
mardi 14 décembre 2004 à 21:19:05 |
Re : recherche du fichier excel.exe
|
Cette discussion est classé dans : fichier, exe, excel, recherche
Répondre à ce message
Sujets en rapport avec ce message
macro de recherche et d'ouverture de fichier excel [ par flolf ]
Bonjour a tousje suis tout nouveau tout beau (ca c'est moin sur par contre) en VBet forcement je rencontre des problemesj'ai un fchier excelA vierge.
VBA Excel - Recherche de fichiers [ par econs ]
Bonjour à toutes et tous. Je possède un dossier contenant un certain nombre de fichiers : - Un fichier Visio (*.vsd) - Un fichier Excel
probleme de recherche destination fichier [ par theice ]
bonjoursje travaille sur excel et j'utilise des macros pour afficher des feuilles excels se trouvant dans un dossier situer sur ma clé USB.Je ne trouv
Recherche dans excel [ par holidays411 ]
bonjour a tous,voila je dois relier plusieur fichier entre eux dans excel.Seulement je voulais savoir (si c'est possible) comment je pouvais a partir
Créer un fichier Excel à partir d'Access? [ par Famas54 ]
Bonjour,Je souhaite pouvoir renvoyer le résultat d'une recherche dans une base de données et affichée pour le moment dans un sous formulaire situé sou
2ième procesus Excel.exe, après mise à jour du lien, qui prende de plus en plus de mémoire [ par Witold ]
Bonjour,J'ai un problème avec un fichier Excel qui est lié à un autre, Lorsque Excel me demande si je veux mettre à jour mon lien, un deuxième process
ouvrir un fichier .xls avec excel depuis un exe vb6 [ par tuneserapasmonnom ]
Comment ouvrir un fichier .xls avec excel depuis un exe vb6 ?Merci d'avanceJC.
Recherche chemin d'accés réseau d'un fichier excel [ par lotypedu31 ]
Bonjour,Je souhaiterai créer une formule excel qui retrouve le chemin d'accès du fichier en cours.J'ai déjà utilisé Curdir il lui faut un disque et me
Recherche de chemin [ par gagagogos ]
Ayant créé un SETUP sous VB5 contenant un exe et un fichier d'aide (fichier d'aide accéssible depuis l'EXE), comment rendre le fichier d'aide accéssib
Recherche dans un fichier excel [ par Nixo ]
Voilà , je shouaite executer un recherche par "site" (une certaine colonne du document excel) dans un fichier excel mais je ne connais pas les equiva
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
|