Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1748to1752
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
Inhaltsverzeichnis

Methode ohne Select ausführen

Methode ohne Select ausführen
29.03.2020 19:14:02
Tobi
Hallo,
ich möchte folgende Methode ohne Select durchführen (Sub Eingang)
Sub Eingang()
Application.ScreenUpdating = False
Dim ErsteLeereZelle As Range, AufNr As String, c As Range, LagerNr As String
Dim wkbLager As Workbook
Dim wksErfassung As Worksheet, wksLager As Worksheet
Set wksErfassung = Workbooks("Erfassung.xlsm").Worksheets("Eingabe Endkunde")
Set wksLager = Workbooks("Lager.xlsm").Worksheets("Lager")
Set wkbLager = Workbooks("Lager.xlsm")
AufNr = wksErfassung.Range("AufNr")
If AufNr = "" Then Exit Sub
wkbLager.Save
With wksLager.Range("W2:AE41")
Set c = .Find(AufNr, LookIn:=xlValues)
If Not c Is Nothing Then
Exit Sub
End If
End With
With wksLager.Select
'with Sheets("Lager").Select
On Error Resume Next
Set ErsteLeereZelle = Union(Range("Eingang"), Range("Ausgang")).SpecialCells( _
xlCellTypeBlanks)(1)
On Error GoTo 0
If ErsteLeereZelle Is Nothing Then
MsgBox "keine Leerzellen gefunden"
Exit Sub
Else
ErsteLeereZelle.Value = AufNr
ErsteLeereZelle.Activate
LagerNr = Selection.Offset(0, -1)
'ActiveWorkbook.Save
Windows("Erfassung.xlsm").Activate
Sheets("Eingabe Endkunde").Select
Range("Lagerplatz") = LagerNr
End If
End Sub

Wenn man auf Start klickt wird geschaut ob die Auftragsnummer (AufNr) in Zellbereich Eingang und Ausgang vorkommt. Wenn nicht wird die Auftragsnummer in die Erste leere Zelle geschrieben.
Daraufhin wird der Lagerplatz ( links neben dem Eintrag ) in die Zelle "Lagerplatz" in der Datei Erfassung.xlms geschrieben.
Es kommt aber zu einem Fehler
kann mir jemand weiterhelfen?
Anbei die Testdateien
https://www.herber.de/bbs/user/136222.zip
Liebe Grüße
Tobias

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Methode ohne Select ausführen
29.03.2020 19:17:13
onur
"Es kommt aber zu einem Fehler " ist genauso aussagefähig wie der Spruch "Ich bin krank" beim Arzt.
Zu WELCHEM Fehler und WO genau denn?
AW: Methode ohne Select ausführen
29.03.2020 19:19:15
Tobi
Hallo
An der Stelle
With wksLager.Select
kommt "Funktion oder Variable erwartet"
Man sieht es in den Testdateien
AW: Methode ohne Select ausführen
29.03.2020 19:21:12
onur
Was glaubst du eigentlich, was dieser Befehl genau da machen soll?
Danke für nichts !!
29.03.2020 19:53:40
Tobi
Wenn ich das wüsste würde ich nicht fragen!
Es ist schön dass man hier geholfen bekommt.
Kenne das aus meiner Branche .. ich bin froh wenn ich mit meinem Wissen anderen helfen kann.
In freien Foren, in meiner privaten Zeit. Aber mit Excel kenne ich mich halt kaum aus.
Aber hier sind echt einige unterwegs die sich an der Unwissenheit der Frager aufgeilen!
Wenn man sich dein Verlauf anschaut muss ich sagen.
Danke für nichts .. und wenn du nur sowas schreibst ... dann lass es gleich ganz bleiben.
Anzeige
AW: Danke für nichts !!
29.03.2020 20:01:19
onur
DAS WAR EINE NORMALE FRAGE !
WOZU SOLL DIESE ZEILE DIENEN ? SCHLIESSLICH IST JA DEIN CODE !
ERST WENN ICH WEISS, WAS DU DIR BEI DIESER ZEILE HIER GEDACHT HAST, KANN ICH SAGEN, WAS DU STATT DESSEN SCHREIBEN SOLLST!
ABER ICH AHNTE JA NICHT, DASS MAN DIR KEINE FRAGEN STELLEN DARF (OBWOHL DAS JA OFFENSICHTLICH NICHT MAL DEIN EIGENER CODE IST) .
AW: Methode ohne Select ausführen
29.03.2020 19:33:35
Nepumuk
Hallo Tobias,
versuch es mal so:
Sub Eingang()
    Application.ScreenUpdating = False
    Dim ErsteLeereZelle As Range, AufNr As String, c As Range, LagerNr As String
    Dim wkbLager As Workbook
    Dim wksErfassung As Worksheet, wksLager As Worksheet
    Set wksErfassung = Workbooks("Erfassung.xlsm").Worksheets("Eingabe Endkunde")
    Set wksLager = Workbooks("Lager.xlsm").Worksheets("Lager")
    Set wkbLager = Workbooks("Lager.xlsm")
    AufNr = wksErfassung.Range("AufNr").Value
    If AufNr = "" Then Exit Sub
    wkbLager.Save
    With wksLager.Range("W2:AE41")
        Set c = .Find(What:=AufNr, LookIn:=xlValues)
        If Not c Is Nothing Then
            Exit Sub
        End If
    End With
    On Error Resume Next
    Set ErsteLeereZelle = Union(Range("Eingang"), _
        Range("Ausgang")).SpecialCells(xlCellTypeBlanks)(1)
    On Error GoTo 0
    If ErsteLeereZelle Is Nothing Then
        MsgBox "keine Leerzellen gefunden"
        Exit Sub
    Else
        ErsteLeereZelle.Value = AufNr
        LagerNr = ErsteLeereZelle.Offset(0, -1).Value
        wksErfassung.Range("Lagerplatz") = LagerNr
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: Methode ohne Select ausführen
29.03.2020 19:45:00
Tobi
Hallo Nepumuk,
so wurde in ErsteLeereZelle nichts gefunden .. ich habe dann ein with wksLager eingefügt. Nun funktioniert es.
Danke
Sub Eingang()
Application.ScreenUpdating = False
Dim ErsteLeereZelle As Range, AufNr As String, c As Range, LagerNr As String
Dim wkbLager As Workbook
Dim wksErfassung As Worksheet, wksLager As Worksheet
Set wksErfassung = Workbooks("Erfassung.xlsm").Worksheets("Eingabe Endkunde")
Set wksLager = Workbooks("Lager.xlsm").Worksheets("Lager")
Set wkbLager = Workbooks("Lager.xlsm")
AufNr = wksErfassung.Range("AufNr").Value
If AufNr = "" Then Exit Sub
wkbLager.Save
With wksLager.Range("W2:AE46")
Set c = .Find(What:=AufNr, LookIn:=xlValues)
If Not c Is Nothing Then
Exit Sub
End If
End With
On Error Resume Next
With wksLager
Set ErsteLeereZelle = Union(.Range("Eingang"), _
.Range("Ausgang")).SpecialCells(xlCellTypeBlanks)(1)
On Error GoTo 0
End With
If ErsteLeereZelle Is Nothing Then
MsgBox "keine Leerzellen gefunden"
Exit Sub
Else
ErsteLeereZelle.Value = AufNr
LagerNr = ErsteLeereZelle.Offset(0, -1).Value
wksErfassung.Range("Lagerplatz") = LagerNr
End If
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige