Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1756to1760
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
Suchen und Zeileninhalt als Variable
09.05.2020 01:43:58
Wolfi
Hallo zusammen,
ich möchte in einer Artikelliste in der Spalte C nach einer Artikelnummer suchen und alle Werte der gefundenen Zeile zur weiteren Verarbeitung übernemmen.
So wie ich mir das mit rng.Row.(Cells) gedacht habe funzt es leider nicht, es kommt die Fehlermeldung:
"Fehler beim Kompilieren. Ungültiger Bezeichner"
Kann mir wer helfen? Vielen Dank
Private Sub CommandButton9_Click()
Dim rng As Range
Nummer = InputBox("Artikelnummer eingeben")
If Nummer = "" Then GoTo Fehler
Set rng = Sheets("Artikelliste").Range("C:C").Find(Nummer)
If rng Is Nothing Then
MsgBox "Artikel nicht vorhanden"
Exit Sub
End If
KN = rng.Row.Cells(0)  'In Spalte A ist die Kundennummer
NM = rng.Row.Cells(1)  'in Spalte B der Kundenname
AN = rng.Row.Cells(2)  'in Spalte C die Artikelnummer
BZ = rng.Row.Cells(3)  'in Spalte D die Artikelbezeichnung
EP = rng.Row.Cells(4)  'in Spalte E der Einzelpreis
BS = rng.Row.Cells(5)  'und in Spalte F noch der Bestand des Artikels
MsgBox KN & Chr(10) & NM & Chr(10) & AN & Chr(10) & BZ & Chr(10) & EP & Chr(10) & BS
Exit Sub
Fehler:
MsgBox "Bitte was eingeben"
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchen und Zeileninhalt als Variable
09.05.2020 05:51:27
Oberschlumpf
Hi,
versuch mal:

KN = Cells(rng.Row,1)  'In Spalte A ist die Kundennummer
NM = Cells(rng.Row,2)  'in Spalte B der Kundenname
AN = Cells(rng.Row,3)  'in Spalte C die Artikelnummer
BZ = Cells(rng.Row,4)  'in Spalte D die Artikelbezeichnung
EP = Cells(rng.Row,5)  'in Spalte E der Einzelpreis
BS = Cells(rng.Row,6)  'und in Spalte F noch der Bestand des Artikels

Hilfts?
Wenn nicht, zeig bitte per Upload eine Bsp-Datei.
Ciao
Thorsten
AW: Suchen und Zeileninhalt als Variable
09.05.2020 06:01:14
Werner
Hallo,
oder mit Offset. Und du solltest dir angewöhnen alle Variablen zu deklarieren.
Option Explicit
Private Sub CommandButton9_Click()
Dim Nummer As String, rng As Range
Dim KN As String, NM As String, AN As String
Dim BZ As String, EP As String, BS As String
Nummer = InputBox("Artikelnummer eingeben")
With Sheets("Artikelliste")
If Not Nummer = vbNullString Then
Set rng = .Columns("C").Find(what:=Nummer, LookIn:=xlValues, lookat:=xlWhole)
If Not rng Is Nothing Then
KN = rng.Offset(, -2) 'rng.Row.Cells(0)  'In Spalte A ist die Kundennummer
NM = rng.Offset(, -1) 'rng.Row.Cells(1)  'in Spalte B der Kundenname
AN = rng  'in Spalte C die Artikelnummer
BZ = rng.Offset(, 1) 'in Spalte D die Artikelbezeichnung
EP = rng.Offset(, 2) 'in Spalte E der Einzelpreis
BS = rng.Offset(, 3) 'und in Spalte F noch der Bestand des Artikels
MsgBox KN & Chr(10) & NM & Chr(10) & AN & Chr(10) & BZ & Chr(10) & EP & Chr(10) &  _
BS
Else
MsgBox "Fehler: Artikelnummer ist nicht vorhanden"
End If
Else
MsgBox "Bitte eine Artikelnummer eingeben."
End If
End With
Set rng = Nothing
End Sub
Gruß Werner
Anzeige
AW: Suchen und Zeileninhalt als Variable
09.05.2020 10:24:58
Herbert
Hallo Werner,
da hast du völlig recht, die Variablen sollte man immer deklarieren. Ist zwar bei der Leistungsfähigkeit der heutigen Prozessoren nicht mehr ganz so nötig, aber für einen sauberen Programmablauf allemal!
Einen Tipp hätte ich auch noch für dich: Betrifft in diesem Beispiel die "Set" Angaben. Ich habe mir beim Programmieren angewöhnt, alles, was einen Eingangs- und Ausgangswert haben muss, auch so versetzt zu programmieren, dass ich alles, was sich zwischen diesen beiden Parametern befindet, wenn immer möglich, nach rechts einrücke (s. Code). So kann ich auch später immer sehen, ob ich auch, den zum Eingangsparameter gehörenden Abschlussparameter programmiert habe. Aber wie gesagt, das ist nur mein Weg und Vorschlag.
Private Sub CommandButton9_Click()
Dim rng As Range, Nummer As String, KN As String, NM As String, AN As String
Dim BZ As String, EP As String, BS As String
Nummer = InputBox("Artikelnummer eingeben")
With Sheets("Artikelliste")
Set rng = .Columns("C").Find(what:=Nummer, LookIn:=xlValues, lookat:=xlWhole)
If Not Nummer = vbNullString Then
If Not rng Is Nothing Then
KN = rng.Offset(, -2) 'In Spalte A ist die Kundennummer
NM = rng.Offset(, -1) 'in Spalte B der Kundenname
AN = rng              'in Spalte C die Artikelnummer
BZ = rng.Offset(, 1)  'in Spalte D die Artikelbezeichnung
EP = rng.Offset(, 2)  'in Spalte E der Einzelpreis
BS = rng.Offset(, 3)  'und in Spalte F noch der Bestand des Artikels
MsgBox KN & Chr(10) & NM & Chr(10) & AN & Chr(10) & BZ & Chr(10) & _
EP & Chr(10) & BS
Else
MsgBox "Fehler: Artikelnummer ist nicht vorhanden"
End If
Else
MsgBox "Bitte eine Artikelnummer eingeben."
End If
Set rng = Nothing
End With
End Sub
Servus
Anzeige
AW: Suchen und Zeileninhalt als Variable
11.05.2020 07:47:55
Wolfgang
Hallo und Danke,
so funktioniert es.
Vielen Dank.
und wen meinst du jetzt? o.w.T.
11.05.2020 08:19:50
Werner
AW: und wen meinst du jetzt? o.w.T.
11.05.2020 09:04:46
Wolfgang
Hallo Werner,
ich meine alle die mir geholfen haben.
Nochmals vielen Dank, funktioniert wirklich gut so.

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige