Macros



Excel-Version: Versionsunabhängig
  • Macros von Schönegger vom 23.06.2002 - 08:34:01
nach unten

Betrifft: Macros
von: Schönegger
Geschrieben am: 23.06.2002 - 08:34:01

Wie kann ich mit einem Macro aus einer Zelle in Tabelle1 Werte in eine andere Tabelle2 kopieren dass die Werte in der zweiten Tabelle immer fortlaufend in den freien Zeilen darunter eingetragen werden? Ich möchte damit eine Auflistung z.B. der fortlaufenden Rechnungsnummern erstellen.

mfg Schönegger


nach oben   nach unten

Re: Macros
von: Dieter
Geschrieben am: 23.06.2002 - 10:31:10

Hallo,
Im Folgenden mal ein kleines Beispiel wie man in Excel eine Datenbank unter Verwendung des ersten
Tabellenblattes als Eingabemaske und des zweiten Tabellenblattes als Datenblatt einrichten kann.
Dieses Beispiel ist beliebig ausbaubar und setzt vorraus das man Grundkenntnisse im Makroschreiben- und lesen
hat. Im ersten Tabellenblatt, "Eingabe" genannt sind die Eingabefelder B3 bis B7 senkrecht angeordnet und es
wurde aus der Symbolleiste "Formular" eine Schaltfläche eingefügt die mit dem nachfolgenden Makro verknüpft
wurde. Im zweiten Tabellenblatt mit Namen "Daten" ist in der ersten Zeile die jeweilige Spaltenüberschrift.

'Die erste Zeile bewirkt einen Wechsel zum Tabellenblatt "Daten"
'Die zweite Zeile sucht die erste freie Zelle in der ersten Spalte
'In der dritten Zeile wird diese Zelle mit dem Wert der Eingabezelle B3
'aus dem Tabellenblatt "Eingabe" gefüllt.
'Die Zeilen vier bis sieben bewirken mit dem Offset-Befehl jeweils einen
'Sprung zur nächsten rechts gelegenen Zelle um diese mit dem Wert der Zellen
'B4 bis B7 aus dem Tabellenblatt "Eingabe" zu füllen.
'Die achte Zeile wechselt zum Tabellenblatt "Eingabe".
'Die neunte Zeile löscht die Werte aus den Zellen B3 bis B7.
'Die zehnte Zeile aktiviert Die Zelle B3 um gleich mit einer neuen Eingabe beginnen
'zu können.

Sub Speichern()

Sheets("Daten").Activate
Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select
ActiveCell.Value = Sheets("Eingabe").[B3]
ActiveCell.Offset(0, 1).Value = Sheets("Eingabe").[B4]
ActiveCell.Offset(0, 2).Value = Sheets("Eingabe").[B5]
ActiveCell.Offset(0, 3).Value = Sheets("Eingabe").[B6]
ActiveCell.Offset(0, 4).Value = Sheets("Eingabe").[B7]
Sheets("Eingabe").Activate
Range("B3:B7").ClearContents
Range("B3").Activate

End Sub

Ich hoffe es hilft dir weiter.
Gruß Dieter

nach oben   nach unten

Re: Macros
von: Martin
Geschrieben am: 23.06.2002 - 14:01:47

Hallo Dieter,
ich bin mal so frech und gebe meinen Senf dazu:
den Code sollte man so schreiben, daß man nicht zwischen den Blättern und Zellen
herumspringt, sondern die Bereiche direkt anspricht (Aussage von Hans Herber).
Außerdem kann man für diese Aufgabe auch eine Schleife einbauen.

Sub Speichern()
Dim WSE As Worksheet
Dim WSD As Worksheet
Dim Zeile As Long
Dim i As Integer

Set WSE = ThisWorkbook.Sheets("Eingabe")
Set WSD = ThisWorkbook.Sheets("Daten")

Zeile = WSD.Cells(WSD.Rows.Count, 1).End(xlUp).Row + 1

For i = 1 To 5
WSD.Cells(Zeile, i) = WSE.Range("B" & 2 + i)
Next i

WSE.Range("B3:B7").ClearContents

End Sub

Grüße
Martin

 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Quer u. Hochformat drucken"