chaos2go
Goto Top

VBA Google View

Hey ihr ,

hab noch mal ein Anliegen


und zwar hab ich eine Excel Tabelle in der Andressen und noch mehr drin stehen


ich möchte jetzt , dass die adressen automatich auf auf google maps angezeigt werden .

die anzeige sollte nach und nach aufgerufen werden sprich erstes wird angezeigt name anzeigen par sec warten und zum nächsten eintrag .

wäre sowas möglich mit vba oder vbs ?


auf bau der Excel datei geht von A bis AM


B = name

Z = Straße

AC = Land

AA = PLZ

AB = City


es sind leider nicht im jeden feld einträge bei den straßen z.B.

die Datei hat weit über 20k einträge


danke schon einmal im vorraus


gruß chaos

Content-ID: 250808

Url: https://administrator.de/contentid/250808

Ausgedruckt am: 26.11.2024 um 11:11 Uhr

colinardo
colinardo 03.10.2014, aktualisiert am 05.10.2014 um 19:30:41 Uhr
Goto Top
Hallo Chaos,
klar geht das face-smile. Kannst du dir in diesem Demo-Sheet abschauen:
show_addresses_in_googlemaps_250808.xlsm

Wenn du es nicht in Excel machen willst kannst du es auch mit VBS extern aufrufen, ohne das die Arbeitsmappe sichtbar ist. (Pfad zum Excel Sheet und Pause in Zeile 3 und 4 bitte anpassen):
Dim wsGoogle, wsDaten, row, strName, strStreet, strPLZ, strCity, strCountry, strURLParams
'Konstanten bitte anpassen  
Const PATH_DATASHEET = "C:\Daten.xlsx"  
Const PAUSE = 5   'Pause zwischen den Aufrufen (in Sekunden)  
'---------------------------------------------------------  
Const GOOGLE_MAPS_URL = "https://www.google.de/maps/place/"  
'Objekte erstellen  
Set objExcel = CreateObject("Excel.Application")  
Set objIE = CreateObject("InternetExplorer.Application")  
Set objShell = CreateObject("Wscript.Shell")  
'Excel unsichtbar machen  
objExcel.Visible = False
objExcel.DisplayAlerts = False

'InternetExplorer im Vordergrund öffnen  
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")  
Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process where Name = 'iexplore.exe'")  
For Each objProcess in colProcessList
	objShell.AppActivate objProcess.Handle
Next
objIE.FullScreen = True
objIE.Visible = True

'Excel-Datensheet öffnen  
Set wb = objExcel.Workbooks.Open(PATH_DATASHEET)
'Tabellenblatt festlegen auf dem die Daten stehen  
Set wsDaten = wb.Sheets(1)

'Für jede Datenzeile ab Zeile 2 (wenn in Zeile 1 Überschriften stehen)  
For i = 2 To wsDaten.UsedRange.Rows.Count
    strName = wsDaten.Range("B" & i).Value  
    strStreet = wsDaten.Range("Z" & i).Value  
    strPLZ = wsDaten.Range("AA" & i).Value  
    strCity = wsDaten.Range("AB" & i).Value  
    strCountry = wsDaten.Range("AC" & i).Value  
    if strStreet <> "" then   
      strURLParams = strStreet
    end if
     if strPLZ <> "" then   
      strURLParams = strURLParams & "+" & strPLZ  
    end if
     if strCity <> "" then   
      strURLParams = strURLParams & "+" & strCity  
    end if
     if strCountry <> "" then   
      strURLParams = strURLParams & "+" & strCountry  
    end if

    objIE.Navigate GOOGLE_MAPS_URL & strURLParams
    Do While (objIE.Busy)
        WScript.Sleep(250)
    Loop
    ' Anzahl an Millisekunden Sekunden warten bevor die neue Adresse aufgerufen wird  
    WScript.Sleep(PAUSE * 1000)
Next
wb.Close False
objExcel.DisplayAlerts = True
objExcel.Quit

Set objExcel = Nothing
Set objIE = Nothing
Set objShell = Nothing
Set objWMIService = Nothing
Grüße Uwe
chaos2go
chaos2go 05.10.2014 um 19:29:12 Uhr
Goto Top
Merci viel mal

Ich werde es am Montag direkt testen