Herbers Excel-Forum - das Archiv

Werte per Makro auslesen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Werte per Makro auslesen
von: Hammes

Geschrieben am: 14.12.2006 10:56:23
Hallo zusammen!
Ich würde gerne die Merkmale zu Werten einer Tabelle, welche innerhalb eines bestimmten Intervalles liegen, per Makro ausgeben lassen. Das Ergebnis soll aber in einer Spalte auf einem bereits befüllten Tabellenblatt angezeigt werden.
Beispiel: Alle Merkmale mit einem Wert zwischen 100 und 300 (Unterstriche zählen als Platzhalter):
Merkmal_____Wert
--------------------
A___________110
B___________50
C___________150
D___________250
E___________10
F___________500
Gewünschtes Ausgabeergebnis in bereits existierender Tabelle:
Merkmal_____Beliebige andere Werte (bereits vorher fix eingetragen)
-------------------------------------------------------
A___________XXX
C___________XXX
D___________XXX
Kann mir da wer helfen?
Danke & Gruß,
Bastian
Bild

Betrifft: AW: Werte per Makro auslesen
von: Hammes
Geschrieben am: 14.12.2006 13:24:34
Niemand?
Bild

Betrifft: AW: Werte per Makro auslesen
von: fcs

Geschrieben am: 14.12.2006 13:58:04
Hallo Bastian,
evtl. Hilft die folgendes Makro weiter. Die Namen der Tabellen muss du ggf. anpassen.
Gruss
Franz
Sub WerteSelektieren()
'Merkmale in aktueller Tabelle Spalte A, deren Werte in Spalte B den eingegebenen _
Wertebereich erfüllen werden in Ausgabetabelle in Spalte A eingetragen
Dim wks As Worksheet, wksAusgabe As Worksheet, Zeile As Long, ZeileAusgabe As Long
Dim Unten As Double, Oben As Double
Set wks = ActiveSheet
Set wksAusgabe = ActiveWorkbook.Worksheets("Ausgabe")
Unten = Val(InputBox("Unterer Wert:"))
Oben = Val(InputBox("Oberer Wert:"))
ZeileAusgabe = wksAusgabe.Cells(wksAusgabe.Rows.Count, "A").End(xlUp).Row
With wks
If Oben >= Unten Then
For Zeile = 2 To .Cells(.Rows.Count, "A").End(xlUp).Row
If .Cells(Zeile, "B").Value >= Unten And .Cells(Zeile, "B").Value <= Oben Then
ZeileAusgabe = ZeileAusgabe + 1
wksAusgabe.Cells(ZeileAusgabe, "A").Value = .Cells(Zeile, "A").Value 'merkmal eintragen
wksAusgabe.Cells(ZeileAusgabe, "B").Value = .Cells(Zeile, "B").Value 'Wert eintragen
End If
Next
Else
MsgBox "Oberer Wert muss größer oder gleich unterer Wert sein"
End If
End With
End Sub

Bild

Betrifft: AW: Werte per Makro auslesen
von: Hammes

Geschrieben am: 14.12.2006 17:18:16
Hi,
das Makro war schonmal nicht schlecht, allerdings werden Merkmale und Zahlen nicht untereinander dargestellt, sondern mit Leerzeichen (Wenn auch in der Ursprungstabelle Leerzeichen enthalten sind) und es werden alle Merkmale & Zahlen ausgegeben, unabhängig von den eingegebenen Grenzen (untere Grenze -100000, obere Grenze 100000).
Noch eine Idee?
Danke & Gruß,
Bastian
Bild

Betrifft: AW: Werte per Makro auslesen
von: fcs

Geschrieben am: 14.12.2006 19:40:07
Hallo Bastian,
Leere Zeilen nicht zu berücksichtigen ist kein Problem.
Das Problem mit dem Zahlenbereich verstehe nicht, das funktioniert bei mir einwandfrei.
Das Makro prüft >= unterer Wert und <= oberer Wert, also werden alle Merkmale gelistet, die zwischen diesen beiden Werten liegen einschließlich der Werte selber.
Was für Zahlenwerte stehen denn in deiner Tabelle?
Lade ggf. mal eine Beispieltabelle hoch.
Gruss
Franz
Makro modifiziert wg Leerzeilen
Sub WerteSelektieren()
'Merkmale in aktueller Tabelle Spalte A, deren Werte in Spalte B den eingegebenen _
Wertebereich erfüllen werden in Ausgabetabelle in Spalte A eingetragen
Dim wks As Worksheet, wksAusgabe As Worksheet, Zeile As Long, ZeileAusgabe As Long
Dim Unten As Double, Obern As Double
Set wks = ActiveSheet
Set wksAusgabe = ActiveWorkbook.Worksheets("Ausgabe")
Unten = Val(InputBox("Unterer Wert:"))
Oben = Val(InputBox("Oberer Wert:"))
ZeileAusgabe = wksAusgabe.Cells(wksAusgabe.Rows.Count, "A").End(xlUp).Row
With wks
If Oben >= Unten Then
For Zeile = 2 To .Cells(.Rows.Count, "A").End(xlUp).Row
If Not IsEmpty(.Cells(Zeile, "B").Value) Then
If .Cells(Zeile, "B").Value >= Unten And .Cells(Zeile, "B").Value <= Oben Then
ZeileAusgabe = ZeileAusgabe + 1
wksAusgabe.Cells(ZeileAusgabe, "A").Value = .Cells(Zeile, "A").Value 'merkmal eintragen
wksAusgabe.Cells(ZeileAusgabe, "B").Value = .Cells(Zeile, "B").Value 'Wert eintragen
End If
End If
Next
Else
MsgBox "Oberer Wert muss größer oder gleich unterer Wert sein"
End If
End With
End Sub

 Bild
Excel-Beispiele zum Thema "Werte per Makro auslesen"
Mehrfachauswahl aus ListBox auslesen Dateien aus Listbox auslesen und öffnen
Bereich in RefEdit-Element eingeben und auslesen Auslesen der Arbeitsmappeneigenschaften
UserName aus der Windows-Registry auslesen Eintrag aus der Win.ini auslesen
Einzelnes Zeichen aus einer InputBox-Eingabe auslesen Ausgewählte Arbeitsblätter auslesen
Mehrfachauswahl in ListBox auslesen