Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1904to1908
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

Neue Projektnummer Fehler

Neue Projektnummer Fehler
05.11.2022 15:51:00
Basti
Hallo Zusammen,
ich habe hier einen Code, der die neuen Daten von "Bearbeiten" in "Stamm" in die entsprechende Zeile kopieren soll. Das funktioniert über die "nummer", welche sich bei Stamm unter Spalte A verbergen und bei Bearbeiten in C303 enthalten ist.
Bei bestehenden Projekten funktioniert es. Bei neuen Projekten, in dennen eine neue nummer in C303 gespeichert wird jedoch nicht. Der Fehler tritt bei "MA_Row =...." auf. Kann einer hier weiterhelfen?
Dim MA_Row As Integer
Dim nummer As String
nummer = Range("C303").Value
If Application.WorksheetFunction.CountIf(Sheets("Stamm").Range("A1:A9999"), nummer) = 0 Then
'Neues Projekt, suche erste leere Zeile
For i = 2 To 9999
If IsEmpty(Sheets("Stamm").Cells(i, 1)) = True Then Row = i: Exit For
Next
Else
'Existierendes Projekt- Finde Zeile und überkopieren
Row = Application.WorksheetFunction.Match(nummer, Sheets("Stamm").Range("A1:A9999"), 0)
End If
##Fehler##
MA_Row = WorksheetFunction.Match(nummer, Sheets("Stamm").Range("A1:A9999"), 0) ' Defintion der Variable - finden der Zeile über Match-Funktion
' Kopieren überarbeitetend Daten aus "Bearbeiten" nach "Stamm"
Sheets("Stamm").Unprotect
Sheets("Bearbeiten").Select
Range("C303:X303").Select
Selection.Copy
Sheets("Stamm").Select
Sheets("Stamm").Unprotect
Rows(MA_Row).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False ' Einfügen der Daten in die zuvor identifizierte Zeile (MA_Row)
ActiveSheet.Protect Password:=Password, DrawingObjects:=False, Contents:=True, Scenarios:= _
False, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True, AllowSorting:=True, AllowFiltering:=True, _
AllowUsingPivotTables:=True
Sheets("Stamm").Unprotect
End If
End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Neue Projektnummer Fehler
05.11.2022 15:55:10
Basti
Zusatz:
Die Fehlermeldung lautet:
"Die Match-Eigenschaft des WorksheetFunction-Objektes kann nicht zugeordnet werden."
AW: Neue Projektnummer Fehler
05.11.2022 16:48:33
ralf_b
hier ein Code ,der deine Fehler (hoffentlich) vermeidet.
das Application vor dem Match bewirkt das eine Fehlermeldung als Fehlertext übergeben wird und nicht als Fehlermeldung aufpoppt.
Fundzeile ist je nach Suchergebnis einen Text(Fehlerwert) oder eine Zahl , deshalb ohne Datentyp deklariert.
Und genau das sollte man nach der Suche prüfen.

Option Explicit
Sub teste()
Dim FundZeile
Dim nummer  As String
Dim loffset As Long
loffset = Columns("C:X").Count 'Anzahl Spalten festlegen
With Sheets("Stamm")
nummer = .Range("C303").Text
.Unprotect Password
FundZeile = Application.Match(nummer, Intersect(.UsedRange, .Columns(1)), 0)
If Not IsNumeric(FundZeile) Then
'kein fund also neu
FundZeile = .Cells(2, 1).End(xlDown).Row + 1
End If
'Existierendes Projekt rüberkopieren
' Kopieren überarbeitete Daten aus "Bearbeiten" nach "Stamm"
'resize verbreitet die Range auf Anzahl der Spalten
.Range("A" & FundZeile).Resize(1, loffset).Value = Sheets("Bearbeiten").Range("C303").resize(1,loffset).Value
.Protect Password:=Password, _
DrawingObjects:=False, _
Contents:=True, _
Scenarios:=False, _
AllowFormattingCells:=True, _
AllowFormattingColumns:=True, _
AllowFormattingRows:=True, _
AllowSorting:=True, _
AllowFiltering:=True, _
AllowUsingPivotTables:=True
End With
End Sub

Anzeige
AW: Neue Projektnummer Fehler
07.11.2022 10:15:00
Basti
Hallo Ralf,
vielen Dank, dass hat mir sehr weitergeholfen.
Viele Grüße
Basti
AW: Neue Projektnummer Fehler
05.11.2022 17:08:29
Daniel
Hi
Die Variablenbezeichnung "Nummer" läßt vermuten, dass in den Zellen Zahlen stehen.
Du hast die Variable als String/Text deklariert. Damit kann es keinen Treffer geben, weil die Match-Funktion zwischen Text und Zahl unterscheidet und 2 nicht findet, wenn nach "2" gesucht wird.
Sollten das der Fall sein, deklarieren Nummer als Zahl (Long oder Double) oder als Variant, dann passt es sich an, je nachdem was in der Zelle steht.
Um Fehlerabbrüche in solchen Fällen zu vermeiden,solltest du
- MA_ROW als Variant deklarieren
- die Abfrage mit Application.Match(Nummer, ...) machen
Denn bekommst du bei nichtfinden keinen Fehlerabbrüche, sondern die Variable übernimmt den Fehlerwert und das kannst du dann Abfragen, um im Code selbst angepasst zu reagieren:

If IsError(MA_ROW) then
Oder

If Is Numeric(MA_ROW) then
Je nachdem ob du den Treffer- oder Nicht-Treffer-Fall im Wahr-Teil des IFs haben möchtest.
Gruß Daniel
Anzeige
AW: Neue Projektnummer Fehler
07.11.2022 10:15:50
Basti
Hallo Daniel,
vielen Dank für die Erläuterungen.
An If isError hatte ich nicht gedacht.
Viele Grüße
Basti

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige