VBA - Tabellenname im Excel übergeben, dann damit weiterarbeiten

Mitglied: Paescu

Paescu (Level 1) - Jetzt verbinden

23.08.2006, aktualisiert 30.08.2006, 11412 Aufrufe, 10 Kommentare

Guten Morgen miteinander

Ich stehe wieder einmal an beim VBA programmieren... :-( face-sad
Und zwar sollte ich folgendes machen: Da ich jetzt ziemlich langen Code habe, der recht unübersichtlich ist, will ich einen Vorgang, der vier Mal ausgeführt wird und immer separat in einer Funktion ist, in eine einzige solche packen. Dazu muss ich natürlich Variabeln übergeben, dass das geht. Unter Anderem auch die Tabelle, in der der Code ausgeführt werden soll, also zum Beispiel "Tabelle2" damit ich in der Funktion dann "Tabelle2.Activate" oder so erhalte, aber das Tabelle2 muss Variabel sein. Ich habe es schon mit einigen Datentypen probiert, es ging auch ein paar Mal, aber dan blieb es hier hängen: "If Tabelle2.Cells(zahl, 1) = "" Then ..."
Was soll das? Ich weiss echt nicht mehr, was ich tun soll, möchte diesen Code endlich übersichtlicher und wenn dies in einer Funktion ist, muss ich nicht an vier Stellen was ändern, sondern nur an einer (weniger Arbeitsaufwand).

Hoffe ihr versteht mich

Gruss
Pascal
Mitglied: Stefan764
24.08.2006 um 19:08 Uhr
Den Namen der Zieltabelle als Parameter zu übergeben geht z.B. so:

Bitte warten ..
Mitglied: Paescu
24.08.2006 um 20:53 Uhr
Danke, sieht recht logisch aus, werde es gleich am Montag testen, morgen habe ich (leider) Schule, da kann ich nicht an diesem Auftrag weiterarbeiten...

Pascal
Bitte warten ..
Mitglied: Paescu
28.08.2006 um 09:31 Uhr
@Stefan764
Hat super funktioniert, danke!

Nun aber noch ne andere Frage... Weisst du auch, wie man dasselbe mit einem global deklarierten Array macht? Also, so dass ich nur den Namen übergebe und den Rest in der Funktion ist, damit ich mehrere Array nutzen kann in einer Funktion (pro Aufruf ein Array)... Hoffe du kommst draus

Pascal
Bitte warten ..
Mitglied: Stefan764
28.08.2006 um 15:54 Uhr
Tut mir leid, aber ich verstehe nicht ganz, was du meinst.

Was willst du in den globalen Arrays speichern ? Die Tab-Namen oder Was ?
Bitte warten ..
Mitglied: Paescu
28.08.2006 um 19:37 Uhr
Ne nicht die Tabellennamen, die habe ich nur übergeben, dass die Funktion weiss, in welcher Tabelle was kopiert werden muss. Und da kommt das Array ins Spiel, von jeder Tabelle werden Einträge in Arrays gespeichert (insgesamt 4 Tabellen -> 4 Arrays) und wenn ich zum Beispiel Tabelle2 übergebe, muss ich die Daten in das arrayHardware speichern, wenn ich aber Tabelle3 übergebe, muss arraySoftware genommen werden... die Arrays sind global deklariert, weil sie später noch in einer anderen Funktion gebraucht werden...
Hoffe, du verstehst mich nun besser und wenn nicht, einfach fragen ;-) face-wink

Pascal
Bitte warten ..
Mitglied: Stefan764
28.08.2006 um 21:20 Uhr
Wie währe es mit mehrdimensionalen Arrays ?

Diese Methode ist leider sehr unflexiebel, was die Größe des Arrays angeht.

In anderen Sprachen würde ich dynamische Objekte und Zeiger verwenden.
z.B. TStringList und TList in Delphi

Mit VBA geht das vielleicht auch - aber ich weiß nicht, wie.
Bitte warten ..
Mitglied: Paescu
28.08.2006 um 21:49 Uhr
Ne das ist nicht ne gute Lösung, denn ich weiss nie, wieviele Datensätze es in dem Array werden, also, zum Beispiel könnte es so aussehen:

ArrayHardware(0,0) = Anzahl
ArrayHardware(1,0) = Artikel-Nr.
ArrayHardware(2,0) = Option

Und das bei allen vier Tabellen so...
Dann kann es schlussendlich so aussehen:

ArrayHardware(0,21) = "5"
ArrayHardware(1,21) = "D5GW3"
ArrayHardware(2,21) = "53S"

Also geht deine Methode irgendwie nicht... :-( face-sad
Könnte es unter Umständen schon mit einem einzigen Array machen, was aber ziemlich aufwendig ist... Aber ich könnte es morgen einmal probieren, da mir sowieso nichts anderes übrig bleiben wird... :-( face-sad

Pascal
Bitte warten ..
Mitglied: Stefan764
28.08.2006 um 22:24 Uhr
Vielleicht ist es das, was du suchst :

<klugscheiß>

Solche Programmtechniken haben ein hohes Fehlerrisiko !
Man gerät sehr schnell aus den Arraygrenzen heraus.

</klugscheiß>
Bitte warten ..
Mitglied: Paescu
29.08.2006 um 08:27 Uhr
Wusste ich gar nicht, dass sowas geht... Aber wäre auch ne Lösung... Ich muss schauen, welche dass ich nehme, werde es dann hier bekannt geben...

Nochmal danke an alle, die sich Mühe gegeben haben!

Pascal
Bitte warten ..
Mitglied: Paescu
30.08.2006 um 16:01 Uhr
Habe nun ein einziges Array genommen, ist leicht und funktioniert so wie es soll!

Somit habe ich diesen Schritt nun (endlich) fertig =)

Ich denke, in den nächsten Tagen werden wieder ein paar fragen von mir auftauchen ;-) face-wink

Gruss Pascal
Bitte warten ..
Heiß diskutierte Inhalte
MikroTik RouterOS
Simples VLAN bringt mich zur Verzweiflung
gelöst Daniel26Vor 1 TagFrageMikroTik RouterOS30 Kommentare

Moin, ich bin sehr neu im Mikrotik-Bereich, aber schon dabei, aufzuegeben. Wir verbauen in unserer Hardware Switche von Mikrotik. Bisher waren da Netgear-Teile drin, ...

Microsoft
STRG + ALT + ENTF
TezzlaVor 1 TagAllgemeinMicrosoft12 Kommentare

Mahlzeit zusammen, wir haben gerade im Kollegenkreis über Sinn und Unsinn der Sperrbildschirmentriegelung STRG + ALT + ENTF unter Win10 diskutiert. Mich würde hierzu ...

Video & Streaming
Streamingplattform mit eigenen Servern
gelöst icegetVor 1 TagFrageVideo & Streaming6 Kommentare

Hallo liebe Community, ich würde gerne via Amazaon AWS (oder andere Cloudanbietern) mehrere Serverinstanzen (Streaming) starten, um z.B. 2000 Personen den selben Stream den ...

Windows Server
Nutzer als lokaler Admin in Windows Server 2019
hanheikVor 1 TagFrageWindows Server6 Kommentare

Hallo, in SBS 2011 konnte ich ganz einfach einen Nutzer als lokalen Admin einstellen. Windows fragte dann, für welchen Rechner; Rechner auswählen; fertig! In ...

Windows Netzwerk
Telefone im Netzwerk bekannt machen
jannik0205Vor 19 StundenFrageWindows Netzwerk13 Kommentare

Hallo Zusammen, In unserem Unternehmen gibt es eine Telefonanlage mit eigenem Telefonienetz (192.168.5.X). Schließe ich ein Telefon an eine Netzwerkdose, bekommt es vom DHCP- ...

Hardware
Outdoor LAN sichern mit oder ohne Fritzbox Verständnis Frage
bluescreenVor 1 TagFrageHardware14 Kommentare

Hallo zusammen, ich habe die letzten Stunden schon viel hier gelesen, stehe aber ein wenig auf dem Schlauch, wie und wo ich weiter suchen ...

Windows 10
Windows 7 pro Lizenz nutzen für Windows 10
lukas0209Vor 14 StundenFrageWindows 1013 Kommentare

Hallo Community, ich versuche seit einigen Wochen unser Netzwerk von Windows Server 2008 R2 Standard auf Windows Server 2016 Essentials um, welches eine städtische ...

Switche und Hubs
Zwei Lancom GS-315XP Switche VLAN verbinden
wieoderwasVor 1 TagFrageSwitche und Hubs14 Kommentare

Hallo zusammen, wir haben zwei neue Lancom GS-315XP Switche bekommen. An einem dieser Switche sind Lancom Accesspoints angeschlossen. Ich verzweifel gerade an der Verbindung ...