Top-Themen

Aktuelle Themen (A bis Z)

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

Mitglied: karlchristian

karlchristian (Level 1) - Jetzt verbinden

07.08.2014, aktualisiert 08:34 Uhr, 2059 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 ..
Ähnliche Inhalte
VB for Applications
Excel VBA HTML-Tabelle auslesen
gelöst Frage von chef1568VB for Applications2 Kommentare

Hallo, ich möchte eine in einer Email eingebundenen HTML-Tabelle auslesen und in einen Array speichern. Hierzu habe ich bereits ...

Microsoft Office

EXCEL VBA Termindaten aus Tabelle Filtern

Frage von t3jxbusMicrosoft Office

Hallo, ich habe hier folgenden Codeblock gefunden für VBA im Excel: Das ganze funktioniert auch soweit super. Ich beschreibe ...

Microsoft Office

Excel 2010 mit VBA sortieren ?

gelöst Frage von dressaMicrosoft Office4 Kommentare

Hallo miteinander, Ich habe die Aufgabe mit Excel einen Dateiordner auszulesen und diese in Excel nach 2 Kriterien in ...

Microsoft Office

Excel Arbeitsblatt automatisch um Zelle erweitern

gelöst Frage von tom1987Microsoft Office2 Kommentare

Hallo VBA-Profis ;) Ich habe folgendes Problem Bin gerade dabei ein Protokoll zu erstellen, über die %-Auslastung der LKW´s ...

Neue Wissensbeiträge
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 8 StundenHumor (lol)3 Kommentare

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Alte Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 17 StundenRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 1 TagSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 1 TagWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
Sicherheit
Verbindliche Zustellung per E-Mail?
Frage von ahussainSicherheit17 Kommentare

Hallo allerseits, ein Kunde von mir nutzt intensiv Fax. Hauptgrund: zusammen mit einer Empfangsbestätigung ist eine verbindliche Zustellung gewährleistet. ...

Sonstige Systeme
Wie Normenkataloge im Unternehmen bereit stellen?
Frage von MuzzepuckelSonstige Systeme14 Kommentare

Hallo Kollegen, ich lese schon lange hier mit, nun mein ersrer Beitrag, bzw. Frage. :-) Wir benötigen für unsere ...

SAN, NAS, DAS
Entscheidung SAN Dell oder HP
Frage von VincorSAN, NAS, DAS13 Kommentare

Hallo, wir wollen uns für unsere Hyper V Umgebung eine neue SAN Anschaffen. Es laufen 30 VM's darunter, DC; ...

Windows Installation
Kleines Büro - wie PCs einrichten? Domaincontroller sinnvoll?
Frage von Jonas42Windows Installation12 Kommentare

Hallo zusammen, ich überlege derzeit mal wieder, ob ich unsere IT ändern sollte. Es handelt sich um ein Ingenieurbüro ...