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

Fehlermeldung

Fehlermeldung
14.06.2009 18:01:55
katermauz
Hallo,
ich habe bei einer Exceldatei leichte Anpassungen vorgenommen (Verweissuche und ein Makro). Seitdem kommt beim Ausführen eines Makros was vorher tatellos funktioniert hat die Fehlermeldung Projekt oder Bibliothek nicht gefunden und Fehler im verborgenen Modul der Tabelle02. Das eigenartige ist daran, dass es an einem Rechner auf Arbeit funktioniert, aber zu Hause nicht. Anbei stell ich mal das Makro mit rein. Vielleicht kann mir jemand helfen, wäre sehr schön. Vielen Dank erstmal Liebe Grüße René
Der Debugger zeigt den Fehler in der Zeile
' Verursacher zusammensetzen - Neu
Worksheets("Daten").Cells(actRow, 15).Value = Trim (sauber(Worksheets("Daten").Cells(actRow, 12).Value) _
+ sauber(Worksheets("Daten").Cells(actRow, 13).Value) + sauber(Worksheets("Daten").Cells(actRow, 14).Value))
bei Trim

Private Sub Übernehmen_Click()
Dim actRow, DSNr As Long
If _
(Worksheets("Eingabe").Cells(2, 3).Value = 0) Or _
(Worksheets("Eingabe").Cells(3, 3).Value = 0) Or _
(Worksheets("Eingabe").Cells(4, 3).Value = 0) Or _
(Worksheets("Eingabe").Cells(5, 3).Value = 0) Or _
(Worksheets("Eingabe").Cells(21, 2).Value = 0) Then MsgBox ("bitte Eingaben überprüfen"): Exit  _
Sub
If (Sheets("eingabe").Range("B10").Value  "" And (Sheets("eingabe").Range("C17").Value =  _
"0" Or Sheets("eingabe").Range("C19").Value = "0")) Or _
(Sheets("eingabe").Range("C17").Value  "0" And (Sheets("eingabe").Range("B10").Value = _
"" Or Sheets("eingabe").Range("C19").Value = "0")) Or _
(Sheets("eingabe").Range("C19").Value  "0" And (Sheets("eingabe").Range("B10").Value = _
"" Or Sheets("eingabe").Range("C17").Value = "0")) Then _
MsgBox ("bitte Eingaben überprüfen"): Exit Sub
DSNr = Worksheets("Rechnen").Cells(2, 2).Value
actRow = DSNr + 1
Range("B11").Select
Selection.Copy
Range("C10").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
' Übernahme Datum von Blatt "Eingabe" in Blatt "Daten"
Worksheets("Daten").Cells(actRow, 1).Value = _
Worksheets("Eingabe").Cells(1, 3).Value
' Übernahme Prüfer. von Blatt "Eingabe" in Blatt "Daten"
Worksheets("Daten").Cells(actRow, 2).Value = _
Worksheets("Eingabe").Cells(2, 3).Value
' Übernahme Typ von Blatt "Eingabe" in Blatt "Daten"
Worksheets("Daten").Cells(actRow, 3).Value = _
Worksheets("Eingabe").Cells(3, 3).Value
' Übernahme Kenn-Nr. von Blatt "Eingabe" in Blatt "Daten"
Worksheets("Daten").Cells(actRow, 4).Value = _
Worksheets("Eingabe").Cells(4, 3).Value
' Übernahme Land von Blatt "Eingabe" in Blatt "Daten"
Worksheets("Daten").Cells(actRow, 5).Value = _
Worksheets("Eingabe").Cells(5, 3).Value
' Übernahme Fehlerort von Blatt "Eingabe" in Blatt "Daten"
Worksheets("Daten").Cells(actRow, 6).Value = _
Worksheets("Eingabe").Cells(11, 2).Value
' Übernahme links/rechts von Blatt "Eingabe" in Blatt "Daten"
Worksheets("Daten").Cells(actRow, 7).Value = _
Worksheets("Eingabe").Cells(12, 2).Value
' Übernahme vorne/hinten von Blatt "Eingabe" in Blatt "Daten"
Worksheets("Daten").Cells(actRow, 8).Value = _
Worksheets("Eingabe").Cells(13, 2).Value
' Übernahme oben/unten von Blatt "Eingabe" in Blatt "Daten"
Worksheets("Daten").Cells(actRow, 9).Value = _
Worksheets("Eingabe").Cells(14, 2).Value
' Übernahme Fehlerart von Blatt "Eingabe" in Blatt "Daten"
Worksheets("Daten").Cells(actRow, 10).Value = _
Worksheets("Eingabe").Cells(17, 3).Value
' Übernahme Fehler-Kat. von Blatt "Eingabe" in Blatt "Daten"
Worksheets("Daten").Cells(actRow, 11).Value = _
Worksheets("Eingabe").Cells(19, 2).Value
' Übernahme Verursacher1 von Blatt "Eingabe" in Blatt "Daten"
Worksheets("Daten").Cells(actRow, 12).Value = _
Worksheets("Eingabe").Cells(21, 2).Value
' Übernahme Verursacher2 von Blatt "Eingabe" in Blatt "Daten"
Worksheets("Daten").Cells(actRow, 13).Value = _
Worksheets("Eingabe").Cells(22, 2).Value
' Übernahme Verursacher3 von Blatt "Eingabe" in Blatt "Daten"
Worksheets("Daten").Cells(actRow, 14).Value = _
Worksheets("Eingabe").Cells(23, 2).Value
' Verursacher zusammensetzen - Neu
Worksheets("Daten").Cells(actRow, 15).Value = Trim (sauber(Worksheets("Daten").Cells(actRow, _
12).Value) _
+ sauber(Worksheets("Daten").Cells(actRow, 13).Value) + sauber(Worksheets("Daten").Cells( _
actRow, 14).Value))
'verursacher/konzern
For x = 2 To 15
If Worksheets("Eingabe").Cells(21, 2).Value = Sheets("listen").Cells(x, 27).Value Then _
Worksheets("Daten").Cells(actRow, 16).Value = Sheets("listen").Cells(x, 28).Value: Exit For
Next
' Fehler zusammensetzen - Neu
Worksheets("Daten").Cells(actRow, 17).Value = Trim(sauber(Worksheets("Daten").Cells(actRow,  _
6).Value) _
+ sauber(Worksheets("Daten").Cells(actRow, 7).Value) + sauber(Worksheets("Daten").Cells( _
actRow, 8).Value) _
+ sauber(Worksheets("Daten").Cells(actRow, 9).Value) + sauber(Worksheets("Daten").Cells( _
actRow, 10).Value))
' Bemerkung + Maßnahmen zu den Fehlern übernehmen
Worksheets("Daten").Cells(actRow, 18).Value = Trim(TeBO_Fehler.Value) 'Worksheets("Eingabe") _
.Cells(2, 5).Value)
Worksheets("Daten").Cells(actRow, 19).Value = Trim(TeBo_Maßnahmen.Value) '("Eingabe").Cells( _
7, 5).Value)
NaechsterDatensatz
Worksheets("Rechnen").Cells(1, 2).Value = Worksheets("Rechnen").Cells(4, 2).Value
'Ausschalten der Bildschirmaktualisierung: ist schneller und sieht ruhiger aus
Application.ScreenUpdating = False
DatenSortieren
Worksheets("Daten").Activate
Do While Worksheets("Daten").Range("A2") = 0
Worksheets("Daten").Rows("2:2").Select
Selection.Delete Shift:=xlUp
Loop
Worksheets("Menü").Visible = True
Worksheets("Menü").Activate
Worksheets("Eingabe").Visible = xlVeryHidden
Worksheets("Stammdatei").Visible = xlVeryHidden
Worksheets("Listen").Visible = xlVeryHidden
Worksheets("Rechnen").Visible = xlVeryHidden
Application.ScreenUpdating = True
ActiveWorkbook.Save
Worksheets("Eingabe").Visible = True
Worksheets("Menü").Visible = xlVeryHidden
Worksheets("Rechnen").Visible = xlVeryHidden
Worksheets("Daten").Visible = xlVeryHidden
Worksheets("Eingabe").Activate
Dim AktDS, GesDS As Long
Worksheets("Rechnen").Cells(1, 2).Value = _
Worksheets("Rechnen").Cells(4, 2).Value
AktDS = Worksheets("Rechnen").Cells(2, 2).Value
GesDS = Worksheets("Rechnen").Cells(1, 2).Value
AktDS = GesDS + 1
Worksheets("Rechnen").Cells(2, 2).Value = AktDS
DatenHolen (AktDS + 1)
' Übernahme aktuelles Datum
Worksheets("Eingabe").Cells(1, 2).Value = _
Worksheets("Rechnen").Cells(6, 3).Value
Range("C10").Select
Selection.ClearContents
Worksheets("Eingabe").Cells(2, 2).Select
End Sub


2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehlermeldung
14.06.2009 18:21:50
Gerd
Hallo René!
Was SAUBER ist, soll, macht, ist aus dem Code nicht ersidhtlich.
Gruß Gerd
AW: Fehlermeldung
14.06.2009 19:15:07
Matthias
Hallo
Ich habe zwar auch keine Lösung da ich das nicht nachbauen werde
und lasse den Beitrag daher auch "offen"
So wie Dein geposteter Code aussieht schreckt es sicher einige ab
und die machen den Beitrag dann ganz schnell wieder zu.
Strukturiere Deinen Code besser
Ein Vorschlag:

Private Sub Übernehmen_Click()
Dim actRow, DSNr As Long
With Worksheets("Eingabe")
If .Cells(2, 3).Value = 0 Or _
.Cells(3, 3).Value = 0 Or _
.Cells(4, 3).Value = 0 Or _
.Cells(5, 3).Value = 0 Or _
.Cells(21, 2).Value = 0 Then MsgBox ("bitte Eingaben überprüfen"): Exit Sub
If .Range("B10").Value  "" And _
.Range("C17").Value = "0" Or _
.Range("C19").Value = "0" Or _
.Range("C17").Value  "0" And _
.Range("B10").Value = "" Or _
.Range("C19").Value = "0" Or _
.Range("C19").Value  "0" And _
.Range("B10").Value = "" Or _
.Range("C17").Value = "0" Then MsgBox ("bitte Eingaben überprüfen"): Exit Sub
End With
DSNr = Worksheets("Rechnen").Cells(2, 2).Value
actRow = DSNr + 1
Range("C10").Copy
'........ weiterer Programmcode
End Sub


Sieht so besser aus und man erkkennt sofort was zueinander gehört.



das hier ist aber kontraproduktiv
Range("B11").Select
Selection.Copy
Range("C10").Select
Selection.Copy
Du mußt um zu Kopieren nicht erst Selektieren.
Er würde also reichen:
Range("B11").Copy oder
Range("C10").Copy
beides hintereinanderzuschalten ist eigenlich nicht sinnvoll, weil nicht nötig.
Du kopierst B11 und dannach kopierst Du C10.
Warum also hast Du aber zuvor B11 kopiert, wenn Du nix damit vorhast
Gruß Matthias
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige