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

Frage Microsoft Microsoft Office

Excel 2010 VBA automatisch erweitern mit Datensätze aus Tabelle

Mitglied: karlchristian

karlchristian (Level 1) - Jetzt verbinden

07.08.2014, aktualisiert 08:34 Uhr, 1993 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
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 1 TagLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 1 TagTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 1 TagSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 1 TagSicherheit9 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Batch & Shell
Meltdown Microsoft Prüf Script - .zip Datei leider leer
gelöst Frage von MasterBlaster88Batch & Shell13 Kommentare

Hallo zusammen, ich patche gerade unsere Windows Server bzgl. der Meltdown Lücke. Patch vorhanden, Reg Keys gesetzt Um das ...

Batch & Shell
Shell-Skript - Syntax error: Unterminated quoted string
Frage von newit1Batch & Shell13 Kommentare

Hallo Ich schreibe ein Skript das eine CSV-Datei in eine mySQL Datenbank schieben soll. Bekomme nach start des Skrips ...

Monitoring
VPN Performance Zyxel-Fritte
gelöst Frage von HenereMonitoring13 Kommentare

Servus, nachdem ihr mir ja schon so gut helfen konntet, was das VPN zwischen Zyxel USG60W und Fritte 7490 ...

Sicherheit
Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen
Information von FrankSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...