• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

vanuit Excel waardes van ini file in vaste cel weergeven

Status
Niet open voor verdere reacties.

leveller1

Nieuwe gebruiker
Lid geworden
30 jul 2009
Berichten
1
Ik wil in excel bepaalde cellen uit een ini bestand halen. Zo staat bijvoorbeeld onder de kop: [RGADriver] de tekst PortName=..... (en op de puntjes staat de com poort ingevult). Nu wil ik deze com poort in een veld in excel weergeven.
Ik denk dat dit via een macro moet?
Kan iemand mij opweg helpen? Ik heb nog geen ervaring (zeer beperkt) met macros

mvg Rens
 
Beste Leveller1,

Met een simpele zoekopdracht in google kom je snel op de juiste pagina:
excel vba open ini file
bovenste linken geven je gelijk prijs. Heb de tweede link gebruikt.
klik hier

Aangezien je aangeeft dat je niet een meester ben in macro's of te wel de programmeer taal VBA windt je hierbij een voorstel wat ik voor je in elkaar heb geplakt.

Zie nederlandse uitleg in het vba gedeelte van de excel file.

Plaats de files in de map: C:/EXCEL
Open hierna de excel file en klik op de knop.

Pas de code aan aan jou gegevens en folder locatie.

Succes.

ps.
Hieronder de code voor het inladen van de ini info

ps2.
Dit is alleen de code voor het inlezen van je ini gegevens.
De code in de gegeven link geeft ook opties tot het verwijderen en veranderen van deze gegevens.
Aangezien je deze niet nodig hebt heb ik deze eruit gelaten om het overzicht voor je te bewaren.

Code:
Private Declare Function GetPrivateProfileString Lib "kernel32" _
    Alias "GetPrivateProfileStringA" ( _
    ByVal lpApplicationName As String, _
    ByVal lpKeyName As Any, _
    ByVal lpDefault As String, _
    ByVal lpReturnedString As String, _
    ByVal nSize As Long, _
    ByVal lpFileName As String) As Long

Private Declare Function WritePrivateProfileString& Lib "kernel32" _
    Alias "WritePrivateProfileStringA" ( _
    ByVal strAppName As String, _
    ByVal strKeyName As String, _
    ByVal strKeyDefault As String, _
    ByVal strFileName As String)

Sub Zet_ini_waarde_over()
'// verander hier je foldermap, de sectieverwizing in je ini file en je key verwijzing in je ini file.
    Range("a1") = GetKeyVal("C:\EXCEL\test.ini", "HOST", "NoDriver")
End Sub

Function GetKeyVal(ByVal IniFile As String, ByVal Section As String, ByVal Key As String)

Dim RetVal As String, Exec As Integer, GetIni As String

'// Retrieve info from an INI File
'// IniFile = The location of the INI File (eg. "C:WindowsINIFile.ini")
'// [Section]  = [Section] where the Key is held
'// Key        = The Key of which you want to retrieve information
'// Check to see if the INI File specified exists
'// If you wish then change code to create File
FileExists IniFile

'// If INI File exists then proceed to Get Key Value
'// Create a buffer to hold the string
RetVal = String(255, 0)

'// Exercute the call and get the string len
Exec = GetPrivateProfileString(Section, Key, "", RetVal, Len(RetVal), IniFile)

    If Len(Exec) = 0 Then
        GetKeyVal = ""
    Else
        GetKeyVal = Left(RetVal, InStr(RetVal, Chr(0)) - 1)
    End If

End Function

Function FileExists(FullFilePath As String)

    If Dir(FullFilePath) = "" Then
        MsgBox "File Not Found: " & FullFilePath & vbCrLf & _
        "Please check the Path name!", vbExclamation, "INI File Not Found"
        '//Note: Use of End - Lets end it here !
        End
    End If

End Function
 

Bijlagen

Zeer mooie post Ferenc :thumb: Hopelijk is de volgende er eerder dan over 3 maanden :)
 
Wigi,

Bedankt, maar ere aan degene die de oorspornkelijke code heeft gemaakt.

Probeer het zo nu en dan weer op te pakken om op het forum vragen proberen te beantwoorden. Maar denk niet dat het zo erg wordt als in den beginnen. Maar je weet nooit, waar een wil is is een weg :).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan