Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Ausgabe von Tabellenwerten durch Zeileneingabe

Betrifft: Ausgabe von Tabellenwerten durch Zeileneingabe von: Sparrow
Geschrieben am: 30.10.2014 10:36:40

Hallo!
Ich habe folgendes Problem: Ich bräuchte einen VBA Code, der mir durch die Eingabe von einer Zeilen Range den Inhalt der Zeilen der Tabelle ausgibt. In diesem Beispiel habe ich in Tabelle 1 Spalte A verschiedene Werte. Wenn ich in Tabelle 2 nun in das gelb markierte Feld 1-4 eingebe soll Excel die Zeilen 1-4 der Spalte A in Tabelle 2 darunter ausgeben. Gibt es da eine Möglichkeit? Anbei eine Musterdatei - vielen Dank im Voraus!
https://www.herber.de/bbs/user/93458.xlsx
Beste Grüße

Sascha

  

Betrifft: AW: Ausgabe von Tabellenwerten durch Zeileneingabe von: fcs
Geschrieben am: 30.10.2014 11:18:28

Hallo Sascha,

grundsätzlich funktioniert es.
Allerdings solltest du die beiden Zeilenwerte in separate Zellen schreiben.

Bei einer Formel-Lösung könnte man für die nicht anzuzeigenden Zeilen einen Leerstring ausgeben.

Alternativ könnte man per Makro den Zellen-/Zeilenbereich von Tabelle1 nach Tabelle2 kopieren.

Formellösung:

Zeile:	1
	4
	
Ausgabe:	
Lutz	
Max	
Kurt	
Dieter	

Formel in A5:
=WENN(($B$1+ZEILE(A5)-5)>$B$2;""; INDEX(Tabelle1!A:A;$B$1+ZEILE(A5)-5))

Diese Formel dann nach unten kopieren.

Makrolösung, die auf Eingaben in die Zellen B1 und B2 reagiert:
'Erstellt unter Excel 2010
'Makro im VBA-Editor unter Tabellenblatt "Tabelle2"
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim Zeile As Long
  Select Case Target.Address(False, False, xlA1)
    Case "B1", "B2"
      If IsNumeric(Range("B1")) And IsNumeric(Range("B2")) Then
        If Range("B1") >= 1 And Range("B2") >= Range("B1") Then
          Application.EnableEvents = False
            'Altwerte löschen
            Zeile = Cells(Rows.Count, 1).End(xlUp).Row
            If Zeile >= 5 Then
              Range(Cells(5, 1), Cells(Zeile, 1)).ClearContents
            End If
            With Worksheets("Tabelle1")
              .Range(.Cells(Range("B1"), 1), .Cells(Range("B2"), 1)).Copy Destination:=Cells(5,  _
1)
            End With
          Application.EnableEvents = True
        End If
      Else
        MsgBox "In Zellen B1 und B2 dürfen nur Zahlenwerte eingegebn werden"
      End If
    Case Else
      'do nothing
  End Select
End Sub
Gruß
Franz


  

Betrifft: AW: Ausgabe von Tabellenwerten durch Zeileneingabe von: Sparrow
Geschrieben am: 30.10.2014 12:01:38

Hallo Franz, vielen Dank schon mal, die Formel funktioniert wunderbar.
Leider funktioniert die VBA-Lösung bei mir nicht - gebe ich etwas in Zelle B1 und B2 in Tabellenblatt 2 ein passiert nichts - hast du eine Idee warum?
Vielen Dank nochmals
Beste Grüße

Sascha


  

Betrifft: AW: Ausgabe von Tabellenwerten durch Zeileneingabe von: fcs
Geschrieben am: 30.10.2014 12:14:09

Hallo Sascha,

hast du das Makro im VBA-Editor an der richtigen Position eingefügt?
Es muss unter Tabelle2 eingefügt sein!
Nach Rechte-Maus-Klick auf das Blattregister-Tab und "Code anzeigen" muss der Code in dem entsprechenden Editorfenster angezeigt werden.

Sind in deiner Excel-Anwendung unter Optionen Makros zugelassen? ggf. Optionen anpassen, so dass Makros ggf. nach Rückfrage beim Öffnen der Datei freigegegeben werden oder Datei in einem vertrauenswürdigen Verzeichnis speichern.
Sind die Makros für die Datei aktiv? ggf. Datei speichern/schließen und neu öffnen.

Gruß
Franz


 

Beiträge aus den Excel-Beispielen zum Thema "Ausgabe von Tabellenwerten durch Zeileneingabe"