Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Excel 2010 VBA automatisch erweitern mit Datensätze aus Tabelle

Frage Microsoft Microsoft Office

Mitglied: karlchristian

karlchristian (Level 1) - Jetzt verbinden

07.08.2014, aktualisiert 08:34 Uhr, 1709 Aufrufe, 3 Kommentare

Hallo,

ich habe eine Excel Tabelle QUELLE wo Worte (Datenbanken) untereinander stehen.
Diese Datenbanken versuche ich per VBA in Sheets einzulesen. Um die Funktionen nicht immer manuell anzlegen zu müssen
möchte ich dieses irgendwie per VBA hin bekommen.

Hierzu verwende ich eine Funktion, in welcher ich Public Funktionen aufrufe

Die Public Funktionen sind immer identisch,
Nun möchte ich erreichen, dass per VBA automatisch anhand der Wörter aus der Tabelle QUELLE die Public Funktion angelegt wird ( mit den an den Testellen TEST bzw TEST1) angelegten Wörten.
Gleichzeitig soll geprüft werden ob die Tabellenblätter bereits vorhanden sind, falls nicht soll diese angelegt werden, weiter soll die Function_Daten_Laden mit den Wörtern aus der Tabelle mit der PublicFunktion automatisch erweitert werden.

Ich habe meine Codes mal angefügt.
Im Tabellenblatt QUELLE stehen die Werte untereinander, für welche ich das VBA automatisch erweitern möchte.

vielleicht kann mir hier jemand helfen um das Problem zu lösen (Es handelt sich hierbei um gut 180 Datenbanken die eingelesen werden sollen)

01.
Function Daten_laden() 
02.
 
03.
verlassen = False 
04.
 
05.
TEST 
06.
 
07.
If verlassen = True Then 
08.
 
09.
verlassen = False 
10.
 
11.
Exit Function 
12.
 
13.
End If              'Wenn bei der ersten abfragen ein Fehler auftritt wird abgerochen 
14.
 
15.
 
16.
TEST1 
17.
 
18.
 
19.
MSGbox " Die Daten wurden erfolgreich geladen! " 
20.
 
21.
End Function
01.
Public Sub TEST() ' As Long 
02.
    
03.
   Dim objCQI As cqi 
04.
   'Login übernehmen 
05.
   Login objCQI 
06.
   'löschen der alten Daten 
07.
    Sheets("TEST").Select 
08.
    Cells.Select 
09.
    Selection.ClearContents 
10.
   
11.
   Dim sql As String, tblname As String, Server As String 
12.
    
13.
   sql = "select * from TEST" 
14.
         
15.
  
16.
   tblname = "TEST" 
17.
    
18.
   ' Protkollierung Startzeitpunkt der Verarbeitung 
19.
   'Debug.Print "start CQI Verarbeitung : " & Format(Now, "hh:nn:ss") 
20.
        
21.
   Dim resultOfAction As String 
22.
    
23.
   Dim stat As RETCODE 
24.
   ' Absetzen der Query 
25.
   stat = objCQI.DoRequest4XL(ActiveWorkbook.ActiveSheet, sql, tblname, resultOfAction) 
26.
   If stat <> RETCODE.ok Then 
27.
   '   Debug.Print "Fehler bei HTTP-Request:" & vbCrLf & resultOfAction & vbCrLf & "Status: " & stat & _ 
28.
                  "SQL: " & sql 
29.
   End If 
30.
    
31.
   ' Protkollierung Endezeitpunkt der Verarbeitung 
32.
   'Debug.Print "ende CQI Verarbeitung : " & Format(Now, "hh:nn:ss") 
33.
       
34.
   ' Messung : Dauer Senden HTTP-Request zu Empfangen HTTP-Response 
35.
   'Debug.Print "Zeitdauer Senden der Anforderung - Antwort vom Server : " & objCQI.LastReqRespDuration 
36.
             
37.
   ' Objektvariable zerstören 
38.
   Set objCQI = Nothing 
39.
    
40.
End Sub
01.
Public Sub TEST1() ' As Long 
02.
    
03.
   Dim objCQI As cqi 
04.
   'Login übernehmen 
05.
   Login objCQI 
06.
   'löschen der alten Daten 
07.
    Sheets("TEST1").Select 
08.
    Cells.Select 
09.
    Selection.ClearContents 
10.
   
11.
   Dim sql As String, tblname As String, Server As String 
12.
    
13.
   sql = "select * from TEST1" 
14.
         
15.
  
16.
   tblname = "TEST1" 
17.
    
18.
   ' Protkollierung Startzeitpunkt der Verarbeitung 
19.
   'Debug.Print "start CQI Verarbeitung : " & Format(Now, "hh:nn:ss") 
20.
        
21.
   Dim resultOfAction As String 
22.
    
23.
   Dim stat As RETCODE 
24.
   ' Absetzen der Query 
25.
   stat = objCQI.DoRequest4XL(ActiveWorkbook.ActiveSheet, sql, tblname, resultOfAction) 
26.
   If stat <> RETCODE.ok Then 
27.
   '   Debug.Print "Fehler bei HTTP-Request:" & vbCrLf & resultOfAction & vbCrLf & "Status: " & stat & _ 
28.
                  "SQL: " & sql 
29.
   End If 
30.
    
31.
   ' Protkollierung Endezeitpunkt der Verarbeitung 
32.
   'Debug.Print "ende CQI Verarbeitung : " & Format(Now, "hh:nn:ss") 
33.
       
34.
   ' Messung : Dauer Senden HTTP-Request zu Empfangen HTTP-Response 
35.
   'Debug.Print "Zeitdauer Senden der Anforderung - Antwort vom Server : " & objCQI.LastReqRespDuration 
36.
             
37.
   ' Objektvariable zerstören 
38.
   Set objCQI = Nothing 
39.
    
40.
End Sub
Mitglied: colinardo
07.08.2014, aktualisiert um 10:57 Uhr
Moin karlchristian,
das waren für meinen Geschmack zu viele Public und Functions in deiner wirren Beschreibung
Aber so wie ich das interpretiert habe, möchtest du einfach für alle Datenbanknamen die jetzt in meinem Beispiel im ersten Arbeitsblatt ab Zelle A1 alle untereinander stehen, jeweils ein Blatt erzeugen (falls es nicht existiert) und dann dafür deine Funktion ausführen. dazu brauchst du keine weiteren Funktionen erstellen (was übrigens auch nicht funktionieren würde), sondern gibst einer einizigen Funktion das entsprechende Worksheet als Parameter mit.

01.
Sub Daten_laden() 
02.
    Dim ws1 As Worksheet, cell As Range 
03.
    Set ws1 = Worksheets(1) 
04.
    For Each cell In ws1.Range("A1", ws1.Range("A1").End(xlDown)) 
05.
        On Error Resume Next 
06.
        If Worksheets(cell.Value) Is Nothing Then 
07.
            Worksheets.Add After:=Worksheets(Worksheets.Count) 
08.
            Worksheets(Worksheets.Count).Name = cell.Value 
09.
        End If 
10.
        TEST Worksheets(cell.Value) 
11.
    Next 
12.
End Sub 
13.
 
14.
 
15.
Public Sub TEST(ByVal ws As Worksheet) ' As Long 
16.
    
17.
   Dim objCQI As cqi 
18.
   'Login übernehmen 
19.
   Login objCQI 
20.
   'löschen der alten Daten 
21.
    ws.Select 
22.
    Cells.Select 
23.
    Selection.ClearContents 
24.
   
25.
   Dim sql As String, tblname As String, Server As String 
26.
   tblname = ws.Name 
27.
   sql = "select * from " & tblname 
28.
 
29.
   ' Protkollierung Startzeitpunkt der Verarbeitung 
30.
   'Debug.Print "start CQI Verarbeitung : " & Format(Now, "hh:nn:ss") 
31.
        
32.
   Dim resultOfAction As String 
33.
    
34.
   Dim stat As RETCODE 
35.
   ' Absetzen der Query 
36.
   stat = objCQI.DoRequest4XL(ws, sql, tblname, resultOfAction) 
37.
   If stat <> RETCODE.ok Then 
38.
   '   Debug.Print "Fehler bei HTTP-Request:" & vbCrLf & resultOfAction & vbCrLf & "Status: " & stat & _ 
39.
                  "SQL: " & sql 
40.
   End If 
41.
    
42.
   ' Protkollierung Endezeitpunkt der Verarbeitung 
43.
   'Debug.Print "ende CQI Verarbeitung : " & Format(Now, "hh:nn:ss") 
44.
       
45.
   ' Messung : Dauer Senden HTTP-Request zu Empfangen HTTP-Response 
46.
   'Debug.Print "Zeitdauer Senden der Anforderung - Antwort vom Server : " & objCQI.LastReqRespDuration 
47.
             
48.
   ' Objektvariable zerstören 
49.
   Set objCQI = Nothing 
50.
End Sub
Viel Erfolg
Grüße Uwe
Bitte warten ..
Mitglied: karlchristian
07.08.2014 um 16:08 Uhr
Hallo Uwe,
danke für den Hinweis.

ich habe nur das Problem, dass er mir eine Tabelle Beispiel erzeugt, und eine Tabelle 1.2.3.4.... ect

beim erstmaligem ausführen des Skipts
habe ich bei Daten laden im Bereich
01.
For Each cell In ws1.Range("A1", ws1.Range("A1").End(xlDown))
das Wort Beispiel,
keine Ahnung woher er dieses zieht.
und versucht natürlich dann eine SQL Abfrage damit zu erzeugen.

Vielleicht kannst du hier nochmal schauen
Bitte warten ..
Mitglied: colinardo
07.08.2014, aktualisiert um 16:21 Uhr
In meinem Beispiel stehen deine Tabellennamen von Zelle "A1" abwärts untereinander bis die erste leere Zelle auftaucht auf dem ersten Tabellenblatt! Das funktioniert einwandfrei.

Aber mit deiner ziemlich besch. Erklärung wo deine Daten stehen, kann ich ja nicht Hellsehen !!! Also gib die nochmal mehr Mühe um es genauer verstehen zu können. Danke.
Bitte warten ..
Neuester Wissensbeitrag
Festplatten, SSD, Raid

12TB written pro SSD in 2 Jahren mit RAID5 auf Hyper-VServer

Erfahrungsbericht von Lochkartenstanzer zum Thema Festplatten, SSD, Raid ...

Ähnliche Inhalte
Microsoft Office
gelöst Verschieben von Zellinformation in andere Spalte (per VBA) excel 2010 (5)

Frage von thomas1972 zum Thema Microsoft Office ...

VB for Applications
gelöst Excel VBA .csv Import in Tabelle x, ab Spalte y

Frage von drimrim zum Thema VB for Applications ...

Microsoft Office
Excel 2010 - Tabelle mit mehreren Makros? (2)

Frage von Norderney95 zum Thema Microsoft Office ...

Microsoft Office
gelöst Excel 2010 Zellen mit bestimmten Inhalt mit Makro formartierten (5)

Frage von packmann2016 zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...