Forum: PC-Programmierung Excel Steuerelement-Toolbox


von Dieter (Gast)


Lesenswert?

Hallo,

möchte einen Button (Befehlsschaltfläche) in ein Excel Sheet einfügen.

Beim Klicken auf diesen Button soll der Tabelleninhalt in eine *.txt 
Datei geschrieben werden.

Im ersten Schritt wollte ich über den Menuepfad

Ansicht  Symbolleisten  Steuerelement-Toolbox

erstmal eine Befehlsschaltfläche auf das Sheet setzen. Das geht leider 
nicht, weil in der Steuerelement-Toolbox die unteren Elemente gegraut 
und somit nicht anwählbar sind.

Muß ich da was im Vorfeld freischalten?


Danke und Gruß
Dieter

von Dieter (Gast)


Lesenswert?

ups....... Blattschutz war aktiv.


Nun habe ich den Button auf dem Sheet aber wie komme ich zu meinem *,txt 
File.

Gibt es da Bücher oder Internettseiten, wo dieses Thema (Macros Excel 
Visual Basic) behandelt wird?

Oder gibt es im Objektkatalog eine Klasse, Funktion, die in dieser 
Richtung was taugen?

Da ich mich mit Visual Basic nicht auskenne, bin ich für jeden Tip 
dankbar.

Danke und Gruß
Dieter

von Karl H. (kbuchegg)


Lesenswert?

Dieter wrote:
> Gibt es da Bücher oder Internettseiten, wo dieses Thema (Macros Excel
> Visual Basic) behandelt wird?

Hmm. Nein gibt es nicht. Die Bücher die du in jeder Buchhandlung,
vom Bahnhofskiosk aufwärts bis zum größten Buchladen in deiner
Umgebung findest, sind alle nur Fata Morgana. Alle mindestens
220 Bücher die eine anständige Buchhandlung zum Thema Office,
Excel, VB oder VBA vorrätig hat.

von der mechatroniker (Gast)


Lesenswert?

Meine Lieblings-Infoquellen zu Excel-Makros, wenn ich mal net weiterweiß 
(nach Priorität geordnet):

1. Code-Vervollständigung: einfach mal in eine neue Sub etwas wie 
Excel.ActiveSheet. eingeben (den abschließenden Punkt nicht vergessen) 
und schauen, was dir so angeboten wird. Wenn was interessant klingt, das 
einfach mal einfügen und dann in die Hilfe schauen, siehe oben.

2. Aktion oder einen Spezialfall der Aktion von Hand durchführen, dabei 
Makro aufzeichnen. Generierten Code anschauen, daraus lernen. Evtl. 
Hilfe zu den verwendeten Methoden anschauen (Cursor aufs Schlüsselwort 
und F1 drücken), dann sieht man, was man noch verallgemeinern kann.

3. In Excel lassen sich mit Declare Sub bzw. Declare Function Funktionen 
aus DLLs bekanntmachen, die sich daraufhin nutzen lassen. Hierdurch ist 
es möglich, Dinge, die Excel nicht kann, über das Windows-API zu 
realisieren. Dieses ist auf msdn.microsoft.com zumindest für diejenigen 
brauchbar dokumentiert, die schon den Namen der Funktion kennen, zu der 
sie Infos brauchen.

4. Fachseiten wie www.activevb.de

von Netbird (Gast)


Lesenswert?

Empfehlung: Nimm das Steuerelement aus Ansicht-Symbolleisten- FORMULAR.
Damit eine Schaltfläche aufziehen und hieran das Makro binden, das die 
gewünschte Aktion ausführt. Dieses Makro erzeugst Du durch Aufzeichnung
Extras - Makro - Aufzeichnen ...

von Dieter (Gast)


Lesenswert?

@Netbird,

danke, das hat ganz gut geklappt.

Aus C# meine ich noch zu wissen, dass man dort Dateien (z.B. *.txt 
Files) öffnen und informationen ablegen konnte.
Dazu müßte aber die entsprechende Klasse und Methode eingebunden sein.

Vermute bei Visual Basic gibt es etwas vergleichbares. Habe nur keine 
Ahnung, welche Klassen im Objektkatalog mir entsprechende Methoden zur 
verfügung stellen.

Im Prinzip möchte ich informationen aus Excel Zellen ordnen und 
anschließend in entsprechender Form in einer *.txt Datei ablegen.

Das dies gehen kann, vermute ich. Bin aber noch auf der Suche nach dem 
wie.
Also ein Wink auf Klassen, die das leisten wäre schon hilfreich.

Danke und Gruß
Dieter

von der mechatroniker (Gast)


Lesenswert?

Keine Klassen, sondern Befehle (so völlig nicht-objektorientiert, so 
richtige Relikte aus den alten BASIC-Dialekten):

OPEN
CLOSE
PRINT #
INPUT #

Verwendung z.B.
OPEN "dingsda.txt" FOR OUTPUT AS #1
PRINT #1, "Hallo Welt"
CLOSE #1

Infos wie schon geschrieben per F1-Taste, wenn der Cursor auf so einem 
Befehl steht.

von der mechatroniker (Gast)


Lesenswert?

Nachtrag:

Alternativ die Funktion CreateFile aus dem Windows-API einbinden. Macht 
die Sache aber eher komplizierter. Objektorientiert ist das auch nicht.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.