Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
816to820
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
816to820
816to820
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zellbereich mit einer Zelle vergleichen

Zellbereich mit einer Zelle vergleichen
07.11.2006 18:05:17
Susi79
Hallo,
ich habe ein kleines Problem(?) mit einem Vergleich und zwar habe ich 6 FormatWerte in einem Tabellenblatt, in einem zweiten Tabellenblatt steht eine Datenbeschreibung, worin 1 Formatwert enthalten ist, und ich möchte nun gerne folgendes:
Wenn 1 Formatwert von den 6 mit dem Formatwert in der Datenbeschreibung übereinstimmt, dann soll dieser Formatwert an eine Variable übergeben werden.
Mit einer If-Schleife scheitere ich leider immer an irgendwelchen Fehlermeldungen. Könnte mir jemand helfen?
Vielen Dank.
Susi

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellbereich mit einer Zelle vergleichen
07.11.2006 21:37:23
Erich
Hallo Susi,
was genau meinst du mit "Formatwert"? Den Formatstring einer Zelle? In welcher Sprache (siehe "NumberFormat" und "NumberFormatLocal" in der VBA-Hilfe)?
Spielt es denn eine Rolle, wie viele Formate in der Tabelle vorkommen?
Du brauchst doch nur zu ermitteln, ob das in der Beschreibung (wo und wie?) enthaltene Format in der Tabelle vorkommt,
und wenn ja, das Format in einer (String-?)Variablen abzulegen.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: Zellbereich mit einer Zelle vergleichen
08.11.2006 07:47:43
Susi79
Hallo Erich,
mit Formatwert ist der Maschinensatz gemeint der als Zahlen-Wert in den einzelnen Zellen hinterlegt ist. Z.B. gibt es dort die Format R02, R03 usw. diese sollen mit einer Produktbeschreibung "Formatwert für das Produkt X R03-1720" verglichen werden. Stimmt einer der Datensätze überein, soll dieser als Variable z.B. hier variable=R03 übergeben werden.
Gruss Susi
Anzeige
AW: Zellbereich mit einer Zelle vergleichen
08.11.2006 09:02:22
Erich
Hallo Susi,
deine Angaben reichen wohl für eine vernünftige Lösung nicht aus.
Wenn in der Beschreibung von "R05" auch der Text "R03" vorkommt, kann deiner Variablen "R03" oder "R05" zugewiesen werden.
Das ist nur abhängig von der Reihenfolge der Suche.
Sollen Formatwerte/Maschinensätze Zahlen sein oder Texte wie "R03"?
Schau dir das mal an:
https://www.herber.de/bbs/user/37959.xls
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Weitere Frage - Suche erfolglos und Fehler 91
08.11.2006 10:18:23
Susi79
Ich habe noch eine weitere Frage, vielleicht kannst du mir diese ja auch beantworten.
Wenn ich ein Wert per VBA suche (die Variable Tragegriff als String und mit dem Wert Tragegriff = "Hand" deklariert)
Cells.Find(What:=Tragegriff, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Und dieser Wert nicht gefunden werden kann, dann bekomme ich in dem Makro immer die Fehlermeldung "Laufzeitfehler 91 - Objektvariable oder Withblockvariable deklariert"
Anzeige
AW: Weitere Frage - Suche erfolglos und Fehler 91
08.11.2006 12:18:58
Erich
Hallo Susi,
wenn bei
Cells.Find(What:=Tragegriff, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
der Suchbegriff nicht gefunden wird, ist das Ergebnis Nothing.
Nothing.Activate kann nicht gehen, produziert den Fehler.
Probiers mal mit
Dim rngF as range
set rngF = Cells.Find(What:=Tragegriff, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
if not rngF is nothing then
rngF.activate
else
'etwas anderes?
end if
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
P.S.: Für das andere Problem habe ich im Moment keine Zeit - also später.
Anzeige
AW: Weitere Frage - Suche erfolglos und Fehler 91
10.11.2006 11:34:02
Susi79
Vielen Dank für deine Hilfe, mit deinen Erklärungen habe ich das jetzt weitaus besser verstanden und konnte es daher auch problemlos umsetzen. Es läuft jetzt alles problemlos und funktioniert!
AW: Zellbereich mit einer Zelle vergleichen
08.11.2006 10:11:30
Susi79
Hallo Erich,
also jedes Produkt hat genau 1 Formatsatz anbei eine Bsp Tabelle https://www.herber.de/bbs/user/37961.xls
In der VBA Prozedur soll an eine Variable nur der Formatsatz z.B. R02 übergeben werden, wenn dieser enthalten ist. Es kann passieren, dass wenn ein neues Format verwendet wird dieses in der Tabelle Formate noch nicht enthalten ist, dann soll die Variable "Neues Format" lauten. So kann es dann bei der Kontrolle per Hand nachgetragen und die Formattabelle eingetragen werden.
Ich hoffe jetzt ist das ganze etwas verständlicher?!
Vielen Dank für deine Hilfe.
Viele Grüße Susi
Anzeige
AW: Zellbereich mit einer Zelle vergleichen
08.11.2006 13:53:15
Erich
Hallo Susi,
jetzt ist es wohl etwas klarer.
Kann es nicht vorkommen, dass im Blatt "Daten" Zeichenketten stehen, die wie ein Format aussehen, wie in TOR2311 ?
(Da fände das Makro jetzt das Format R23.)
So habe ich es jetzt verstanden:
Option Explicit
Sub test()
Dim rng As Range, rngF As Range, strAdr As String, strFor As String, strErg As String
Dim intP As Integer
strErg = "Neues Format"
'  Suche erste Zelle mit "Rnn" (nn ist eine Ziffer) in Blatt "Daten"
With Worksheets("Daten")
Set rngF = .Cells.Find(What:="R?", After:=.Cells(1, 1), LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If Not rngF Is Nothing Then
strAdr = rngF.Address
strFor = ""
Do
' Suche erste "Rnn" innerhalb der Zelle
intP = InStr(rngF, "R")
If intP > 0 And intP < Len(rngF) - 2 Then
If IsNumeric(Mid(rngF, intP + 1, 2)) Then
strFor = Mid(rngF, intP, 3)               ' gefunden
Exit Do
End If
End If
Set rngF = .Cells.FindNext(rngF)                ' weitersuchen
Loop While Not rngF Is Nothing And rngF.Address <> strAdr
End If
If strFor = "" Then
MsgBox "Kein Format gefunden in " & .Name
Exit Sub
End If
End With
'  Suche gefundenes Format in Blatt "Format"
With Sheets("Format")
For Each rng In Range("B2:B7")
Set rngF = .Cells.Find(What:=strFor, _
LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
If Not rngF Is Nothing Then
strErg = strFor                              ' gefunden
Exit For
End If
Next rng
End With
MsgBox "Gesucht wurde: " & strFor & "  -  strErg hat den Wert '" & strErg & "'"
End Sub
Hier die Mappe zum Ausprobieren:
https://www.herber.de/bbs/user/37979.xls
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Zellbereich mit einer Zelle vergleichen
10.11.2006 11:31:16
Susi79
Hat alles super geklappt :-) es läuft problemlos.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige