Makro erläutern und verändern

12/12/2008 - 13:52 von Annnette Londa | Report spam
Hallo,
ich habe ein Makro (das ich nicht selber geschrieben habe), das ich
zwingend veràndern müsste.

Es lautet wie folgt:

Sub Auswertung()

On Error GoTo Fehler

x_Tabelle = InputBox("Bitte tragen Sie den Namen des Registerblattes
ein, aus dem Sie Daten auswerten und in einer Übersicht darstellen
möchten!", "Auswahl Registerblatt")
If x_Tabelle = "" Then Exit Sub

x_Zelle = InputBox("Bitte tragen Sie die Zellkoordinaten der Zelle
ein, die den von Ihnen gewünschten Wert für die Auswertung enthàlt!",
"Zelle auswàhlen")
If x_Zelle = "" Then Exit Sub

For x = 1 To 10
Sheets("Übersicht").Range("FA") = x

x_Wert = Sheets(CStr(x_Tabelle)).Range(CStr(x_Zelle))
x_z = ActiveCell.Row
x_s = ActiveCell.Column
ActiveSheet.Cells((x_z + x), x_s) = x_Wert
ActiveSheet.Cells((x_z + x), x_s).NumberFormat = "#,##0.00"
Next

Exit Sub
Fehler:
MsgBox "Der eingegebene Registerblattname oder die eingegebenen
Zellkoordinaten existieren nicht! Eventuell handelt es sich um einen
Schreibfehler. Bitte überprüfen Sie Ihre Eingabe und starten Sie den
Vorgang erneut!"

End Sub

Das Makro erlaubt es mir, bestimmte Daten auszulesen. Das Auslesen
dieser Daten ohne das Makro bedeutet einen enormen Arbeitsaufwand.
Die ausgelesenen Daten werden durch ein Tabellenblatt und eine
Zellbezeichnung eindeutig bestimmt. Diese Daten muss ich in Inboxen
eingeben.

Die ausgelesenen Daten werden in die 10 Zeilen eingetragen, die der
aktiven Zelle folgen.

Soweit verstehe ich das Makro auch. Ich müsste es jetzt aber derart
veràndern, dass das Arbeitsblatt und die Zellbezeichnung nicht mehr
durch Inboxen eingegeben werden, sondern dass diese in den beiden
Zellen unterhalb der aktiven Zelle stehen. Die Daten sollten ab der 4.
Zelle, die unterhalb der aktiven Zelle folgt eingetragen werden.

Kann man das Makro so veràndern, dass die Inboxen durch die
Eintragungen auf dem Tabellenblatt abgelöst werden?

Vielen Dank für Eure Hilfe
Annette
 

Lesen sie die antworten

#1 Andreas Killer
12/12/2008 - 16:32 | Warnen spam
Annnette Londa schrieb:

Die ausgelesenen Daten werden in die 10 Zeilen eingetragen, die der
aktiven Zelle folgen.


Wieso Daten? Ist doch immer derselbe Wert!

Soweit verstehe ich das Makro auch. Ich müsste es jetzt aber derart
veràndern, dass das Arbeitsblatt und die Zellbezeichnung nicht mehr
durch Inboxen eingegeben werden, sondern dass diese in den beiden
Zellen unterhalb der aktiven Zelle stehen. Die Daten sollten ab der 4.
Zelle, die unterhalb der aktiven Zelle folgt eingetragen werden.


Sollte so gehen, viel Spaß damit, Andreas.

Sub Auswertung()
On Error GoTo Fehler
'Zeile und Spalte der aktiven Zelle holen
With ActiveCell
Yd = .Row
Xd = .Column
End With

'Namen des Registerblattes holen
x_Tabelle = Cells(Yd + 1, Xd)
If x_Tabelle = "" Then Exit Sub

'Zellkoordinaten holen
x_Zelle = Cells(Yd + 2, Xd)
If x_Zelle = "" Then Exit Sub

'Wert holen
x_Wert = Sheets(CStr(x_Tabelle)).Range(CStr(x_Zelle))

For I = 0 To 9
Sheets("Übersicht").Range("FA") = I + 1 'Was'n das??

'Wert eintragen
With Cells(Yd + I + 4, Xd)
.Value = x_Wert
.NumberFormat = "#,##0.00"
End With
Next

Exit Sub
Fehler:
MsgBox "Der eingegebene Registerblattname oder die " & _
"eingegebenen Zellkoordinaten existieren nicht! Eventuell " & _
"handelt es sich um einen Schreibfehler. Bitte überprüfen " & _
"Sie Ihre Eingabe und starten Sie den Vorgang erneut!"
End Sub

Ähnliche fragen