Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Arbeitsblatt ohne Select speichern

Betrifft: Arbeitsblatt ohne Select speichern von: Josef
Geschrieben am: 07.05.2008 11:09:51

Hallo!

mit folgendem Code wird das Arbeitsblatt aktiviert, die Zelle A1 markiert, und danach eine Userform geöffnet:

Sub Speichere_Ausprägungen()
On Error GoTo Weiter
Sheets("Ausprägungen").Select
Range("A1").Select
UserForm6.TextBox2.Text = "G:\DOK\Master\Import_NOVA\Zum Importieren\Import_Ausprägungen_*.txt"
UserForm6.Show
Weiter:
End Sub



Über die Userform haeb ich dann die Möglichkeit, dieses Arbeitsblatt als *.txt Datei abzuspeichern.

Ist es bitte möglich, die Daten in diesem Arbeitsblatt ohne Select Befehl abzuspeichern?

Wichtig für die Speicherung wäre, dass in diesem Blatt die Zelle A1 markiert ist.

Danke

Josef

  

Betrifft: AW: Arbeitsblatt ohne Select speichern von: Hajo_Zi
Geschrieben am: 07.05.2008 11:16:01

Hallo Josef,

Excel ist ein vielseitiges Programm und man kann viele Probleme damit lösen. Jede positive Seite hat aber auch negative Aspekte - einer davon ist im Makrorecorder enthalten.
Die Bücher, die es zu Excel VBA gibt, erklären viele Funktionen, aber ich habe bisher nur in einem gelesen, dass der vom Makrorecorder aufgezeichnete Code bereinigt werden muss.
Der Makrorecorder zeichnet alle Aktionen auf, u. a. auch das Auswählen einer Zelle oder eines eingebetteten Objektes (Bild, Diagramm, Zeichnungsobjekt usw.) – dabei wird generell Select und Activate aufgezeichnet. Diese Befehle sind in VBA zu 99,9% nicht notwendig. Sie lassen den Bildschirm flackern und senken die Geschwindigkeit bei der Ausführung des Codes. Man sollte also schon von Beginn an bei der Programmierung darauf achten, solche Befehle zu vermeiden. Meine Erfahrung mit dem Vorsatz: „Das mache ich später“ ist, man schreibt das Programm später meist komplett neu. Also kostest es nicht nur Rechnerzeit sondern auch Deine Zeit und ist Dir Deine Zeit so wenig Wert?
Zum Vergleich mit und ohne Select schau Dir auch mal diese Beispielarbeitsmappe an: mit und ohne select
Auf meiner Homepage sind alle meine Beispiele ohne Select. Da kann man sich also einige Lösungsansätze zu diesem Thema ansehen.

Warum muss die Zelle markiert sein.

GrußformelHomepage


  

Betrifft: AW: Arbeitsblatt ohne Select speichern von: Josef
Geschrieben am: 07.05.2008 11:21:17

Hallo Hajo!

Danke für Deine Antwort.

Zu

Warum muss die Zelle markiert sein.

Weil ich mit folgendem Code in der UserForm die Werte auf dieser Seite als Textfile speichere.:

Wenn die Zellec A1 nicht markiert ist erfolgt nur eine Leerspeicherung.

Josef


Private Sub CommandButton2_Click()
F = FreeFile(0)
'fname = InputBox("Bitte geben Sie den Dateinamen ein!", , "H:\NOVAIMPORT\*.txt")
fname = TextBox2.Text

MsgBox "File Selected is: " & fname
If fname <> False Then
Open fname For Output As #F
Set rng = ActiveCell.CurrentRegion
Debug.Print rng.Address
FCol = rng.Columns(1).Column
LCol = rng.Columns(rng.Columns.Count).Column
Frow = rng.Rows(1).Row
Lrow = rng.Rows(rng.Rows.Count).Row
For i = Frow To Lrow
outputLine = ""
For j = FCol To LCol
If j <> LCol Then
'Semikolon als Texttrennzeichen, kann geändert werden
outputLine = outputLine & Cells(i, j) & ";"
Else
outputLine = outputLine & Cells(i, j)
End If
Next j
Print #F, outputLine
Next i
Close #F
End If
Unload UserForm6
End Sub


Private Sub UserForm_Initialize()
TextBox2.Text = "G:\DOK\Master\Import_NOVA\Zum Importieren\*.txt"
End Sub




  

Betrifft: AW: Arbeitsblatt ohne Select speichern von: Hajo_Zi
Geschrieben am: 07.05.2008 11:28:19

Hallo Josef,

ich baue das jetzt nicht nach.
Set Rng = Range("A1").CurrentRegion

Gruß Hajo


  

Betrifft: AW: Arbeitsblatt ohne Select speichern von: Josef
Geschrieben am: 07.05.2008 11:36:32

Hallo Hajo!

Dann nehme ich mal an das nachstehender Code ungefähr passen könnte ?


Josef


Private Sub CommandButton2_Click()

Dim wks As Worksheet
Set wks = Workbooks("Masterfile.xls").Worksheets("Werte NOVA")

F = FreeFile(0)
'fname = InputBox("Bitte geben Sie den Dateinamen ein!", , "H:\NOVAIMPORT\*.txt")
fname = TextBox2.Text

MsgBox "File Selected is: " & fname
If fname <> False Then
Open fname For Output As #F

Set rng = wks.Range("A1").CurrentRegion

Debug.Print rng.Address
FCol = rng.Columns(1).Column
LCol = rng.Columns(rng.Columns.Count).Column
Frow = rng.Rows(1).Row
Lrow = rng.Rows(rng.Rows.Count).Row
For i = Frow To Lrow
outputLine = ""
For j = FCol To LCol
If j <> LCol Then
'Semikolon als Texttrennzeichen, kann geändert werden

outputLine = outputLine & wks.Cells(i, j) & ";"

Else

outputLine = outputLine & wks.Cells(i, j)

End If
Next j
Print #F, outputLine
Next i
Close #F
End If
Unload UserForm6
End Sub




  

Betrifft: AW: Arbeitsblatt ohne Select speichern von: Hajo_Zi
Geschrieben am: 07.05.2008 11:48:33

Hallo Josef,

warum Beitrag offen? Testen kannst Du es ja.

Gruß Hajo


  

Betrifft: AW: Arbeitsblatt ohne Select speichern von: Josef
Geschrieben am: 08.05.2008 06:38:29

Hallo Hajo!

Habe jetzt getestet und es funktioniert einwandfrei.

Danke nochmals für Deine Mühe und Deine Hilfe.


Josef


 

Beiträge aus den Excel-Beispielen zum Thema "Arbeitsblatt ohne Select speichern"