Clever-Excel-Forum

Normale Version: Auswertung über Eingabemaske
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich will Daten auswerten und habe dazu eine Eingabemaske erstellt und diese mit dem Makro-Editor belegt.
Zwei Dinge stören mich noch:
1.) sieht es so aus, als würde das Makro zwischen den Blättern hin und her springen (so wie ich beim Editor). Wie kann ich das abstellen?
2.) Der erste Befehl im Makro ist eine neue Zeile im Blatt 'Auswertung' einzufügen, aber ohne Formelbezug. Wie schaffe ich es, die Formeln , die in Zeile 2 stehen, ebenfalls zu übertragen?

Danke!
Hi,

ich kann dir zwar fachlich nicht helfen; eine Datei ohne das entsprechende Makro hochzuladen, hilft aber nicht.
Code:
Sub Eingabemaske_Laufzettel()
'
' Eingabemaske_Laufzettel Makro
'

'
   Sheets("Auswertung").Select
   Rows("2:2").Select
   Application.CutCopyMode = False
   Selection.Insert Shift:=xlDown
   Sheets("Eingabemaske").Select
   Range("C6").Select
   Selection.Copy
   Sheets("Auswertung").Select
   Range("A2").Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   Sheets("Eingabemaske").Select
   Range("C8").Select
   Application.CutCopyMode = False
   Selection.Copy
   Sheets("Auswertung").Select
   Range("B2").Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   Sheets("Eingabemaske").Select
   Range("C10").Select
   Application.CutCopyMode = False
   Selection.Copy
   Sheets("Auswertung").Select
   Range("D2").Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   Sheets("Eingabemaske").Select
   Range("C12").Select
   Application.CutCopyMode = False
   Selection.Copy
   Sheets("Auswertung").Select
   Range("E2").Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   Sheets("Eingabemaske").Select
   Range("C8").Select
   Sheets("Eingabemaske").Select
   Range("C14").Select
   Application.CutCopyMode = False
   Selection.Copy
   Sheets("Auswertung").Select
   Range("C2").Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   Sheets("Eingabemaske").Select
   Range("F6").Select
   Application.CutCopyMode = False
   Selection.Copy
   Sheets("Auswertung").Select
   Range("F2").Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   Sheets("Eingabemaske").Select
   Range("F8").Select
   Application.CutCopyMode = False
   Selection.Copy
   Sheets("Auswertung").Select
   Range("G2").Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   Sheets("Eingabemaske").Select
   Range("F10").Select
   Application.CutCopyMode = False
   Selection.Copy
   Sheets("Auswertung").Select
   Range("H2").Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   Sheets("Eingabemaske").Select
   Range("F14").Select
   Application.CutCopyMode = False
   Selection.Copy
   Sheets("Auswertung").Select
   Range("I2").Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   Sheets("Eingabemaske").Select
   Application.CutCopyMode = False
   Selection.ClearContents
   Range("F10").Select
   Selection.ClearContents
   Range("F8").Select
   Selection.ClearContents
   Range("F6").Select
   Selection.ClearContents
   Range("C14").Select
   Selection.ClearContents
   Range("C12").Select
   Selection.ClearContents
   Range("C10").Select
   Selection.ClearContents
   Range("C8").Select
   Selection.ClearContents
   Range("C6").Select
   Selection.ClearContents
End Sub
Soo jetzt die Excel Datei mit Makro und wieder etwas schlauer ....
Hallo,

meine ganz persönliche Meinung zum Makro-Rekorder ist, dass man damit nicht arbeiten sollte, da er keinen ordentlichen Quelltext erzeugt. Das ist mehr eine Logdatei, die alle Tastendrücke aufzeichnet. Dadurch entsteht ein sehr langer Quelltext mit vielen unnötigen Inhalten.

Um das mal zu verdeutlichen, das:

Code:
Sheets("Eingabemaske").Select
Range("C6").Select
Selection.Copy
Sheets("Auswertung").Select
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
   :=False, Transpose:=False


bewirkt das gleiche wie das:

Code:
Sheets("Auswertung").Range("A2") = Sheets("Eingabemaske").Range("C6")

Dann hört auch der Wechsel zwischen den Blättern auf. Die Fleißarbeit bekommst du sicher selber hin.
Dann wäre die Frage ob mich jemand bei einem Makro unterstützen könnte.
Der Inhalt der Felder in 'Eingabemaske' sollen in die Tabelle 'Auswertung' übertragen werden und dann soll die Eingabemaske wieder geleert werden. Danke!

Klaus-Dieter, danke für deinen Tipp.


Code:
Sub Eingabemaske_Laufzettel()
'
' Eingabemaske_Laufzettel Makro
'

'
   Sheets("Auswertung").Select
   Rows("2:2").Select
   Application.CutCopyMode = False
   Selection.Insert Shift:=xlDown
   Sheets("Auswertung").Range("A2") = Sheets("Eingabemaske").Range("C6")
   Sheets("Auswertung").Range("B2") = Sheets("Eingabemaske").Range("C8")
   Sheets("Auswertung").Range("C2") = Sheets("Eingabemaske").Range("C14")
   Sheets("Auswertung").Range("D2") = Sheets("Eingabemaske").Range("C10")
   Sheets("Auswertung").Range("E2") = Sheets("Eingabemaske").Range("C12")
   Sheets("Auswertung").Range("F2") = Sheets("Eingabemaske").Range("F6")
   Sheets("Auswertung").Range("G2") = Sheets("Eingabemaske").Range("F8")
   Sheets("Auswertung").Range("H2") = Sheets("Eingabemaske").Range("F10")
   Sheets("Auswertung").Range("I2") = Sheets("Eingabemaske").Range("C14")
   Selection.ClearContents
   Range("F10").Select
   Selection.ClearContents
   Range("F8").Select
   Selection.ClearContents
   Range("F6").Select
   Selection.ClearContents
   Range("C14").Select
   Selection.ClearContents
   Range("C12").Select
   Selection.ClearContents
   Range("C10").Select
   Selection.ClearContents
   Range("C8").Select
   Selection.ClearContents
   Range("C6").Select
   Selection.ClearContents
End Sub
Hab das jetzt mal so umgesetzt und hab jetzt das Problem, dass er nur eine neue Zeile einfügt und dann das Blatt wechselt.
Hi

zu With kannst du dich ja noch mal selbst belesen. Und wenn du schon mit VBA arbeitest, dann lasse auch J und K berechnen und spar die Formelsache.

Code:
Sub Eingabe()
With Sheets("Auswertung")
  .Rows("2:2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
  .Range("A2").Value = Range("C6").Value
  .Range("B2").Value = Range("C8").Value
  .Range("D2").Value = Range("C10").Value
  .Range("E2").Value = Range("C12").Value
  .Range("C2").Value = Range("C14").Value
  .Range("F2").Value = Range("F6").Value
  .Range("G2").Value = Range("F8").Value
  .Range("H2").Value = Range("F10").Value
  .Range("I2").Value = Range("F14").Value
  .Range("J2").Value = .Range("F2").Value - .Range("G2").Value - .Range("H2").Value
  .Range("K2").Value = .Range("I2").Value / .Range("J2").Value
End With
Range("C6:C14").ClearContents
Range("F6:F14").ClearContents
End Sub

Gruß Elex
Danke Elex!
Klappt super!

Zitat:zu With kannst du dich ja noch mal selbst belesen

werde ich machen!