1.8k Aufrufe
Gefragt in Tabellenkalkulation von flori006 Einsteiger_in (92 Punkte)
Guten Tag liebe Excelfreunde

warum funktioniert mein unter Excel 2003 erstelltes einwandfrei funktionierendes Makro bei der Umstellung Excel 2003 in Win 7
nicht mehr wie vorher ?
Ich führe unter Win 7 Excel 2003 mit Administratorenrechte aus,
aber trotzdem bleibt das Makro immer hängen, und der Befehl wird nicht zu Ende ausgeführt. Schliesse ich das Makro über den Schliessbutton schliesst sich danach gleich die ganze Excelmappe.
Der Code in dem Makro ist folgender:

Sub Prüfen()
Application.ScreenUpdating = False
Sheets("WFF").Range("F1").Copy
Sheets("WFF").Cells(Sheets("WFF").Cells(Rows.Count, 1) _
.End(xlUp).Offset(1, 0).Row, 1).PasteSpecial _
Paste:=xlPasteValues, Transpose:=True
Dim Letzte_Zeile As Long, Wiederholungen As Long
Letzte_Zeile = Range("A65536").End(xlUp).Row
Application.ScreenUpdating = False
For Wiederholungen = Letzte_Zeile To 1 Step -1
If WorksheetFunction.CountIf(Range(Cells(1, 1), Cells(Wiederholungen, 1)), _
Cells(Wiederholungen, 1)) > 1 Then
MsgBox "Gearbeitet"
End If
Next
End Sub

Ich hoffe es hat noch jemand Excel 2003 unter Win 7 und kann den Fehler einmal überprüfen ?
Als Anmerkung: Ich habe Win 7 jetzt auf ein SSD LW installiert

Danke für die Hilfe

mfg flori006

4 Antworten

0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo,

bei mir (Excel 2010) läuft Dein Makro.

Um einen Fehler zu finden müsstest Du schon die zugehörigen Daten dazu posten.

Gruß
Rainer
0 Punkte
Beantwortet von flori006 Einsteiger_in (92 Punkte)
Hallo Rainer;

danke für die schnelle Antwort !

In der Excelmappe sind mehrere Arbeitsblätter angelegt, wobei sich auf den jeweiligen Blättern eigentlich nur die Eintragungen ändern.

Die Vorgehnsweise ist folgende:

Ich mache in F1 eine Eingabe wie z.B. dlff002 oder haff046 oder yoff123 - Bestätigung mit Return

Dann abspeichern mit folgendem Speichermakro in Spalte A

Sub Kopieren1()
Application.ScreenUpdating = False
Sheets("WFF").Range("F1").Copy
Sheets("WFF").Cells(Sheets("WFF").Cells(Rows.Count, 1) _
.End(xlUp).Offset(1, 0).Row, 1).PasteSpecial _
Paste:=xlPasteValues, Transpose:=True
End Sub

Dann sortieren mit folgendem Sortierbutton in Spalte A

Sub Sortieren1()
Application.ScreenUpdating = False
Application.Goto Reference:="WFF"
Selection.Sort Key1:=Range("A10:C10"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("A10:C10").Select
End Sub

Wenn ich jetzt überprüfen möchte ob ein Eintrag schon vorhanden ist ( Duplikat ) erscheint dann eine falsche Angabe. Wenn ich das Fenster dann schliessen möchte wird anscheinend noch eine ??? Funktion durchgeführt. Wenn ich jetzt wieder auf Schliessen gehe schliesst sich dann die ganze Mappe.

Hier noch einmal das Makro womit ich den Eintrag überprüfen möchte :

Sub Suchen()
Dim c, firstAddress
Dim strSuch As String, rngBer As Range
Set rngBer = Sheets("WFF").Range("A10:A" & Range("A65536").End(xlUp).Row)
With rngBer
strSuch = InputBox("Suchen nach WFF-Nr. Eingabe kann in Groß- oder Kleinschrift erfolgen :", "Suchen in Spalte: A")
If strSuch = "" Then
Exit Sub
End If
Set c = .Find(strSuch, LookIn:=xlValues)
If c Is Nothing Then
MsgBox "Eintrag nicht vorhanden"
Else
firstAddress = c.Address
Do
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
Application.Dialogs(xlDialogFormulaFind).Show
End Sub

Ich hoffe Du kannst mit dieser Information etwas anfangen

Viele Grüße

flori006
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi :-)

teste mal ^^

gruss nighty

Sub Prüfen()
Dim LetzteZeile As Long, Wiederholungen As Long
Application.ScreenUpdating = False
With ActiveSheet
.Range("F1").Copy
.Cells(.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row, 1).PasteSpecial Paste:=xlPasteValues, Transpose:=True
LetzteZeile = .UsedRange.SpecialCells(xlCellTypeLastCell).Row
For Wiederholungen = LetzteZeile To 1
If WorksheetFunction.CountIf(Range(Cells(1, 1), Cells(Wiederholungen, 1)), Cells(Wiederholungen, 1)) > 1 Then
MsgBox "Gearbeitet"
End If
Next
End With
Application.ScreenUpdating = True
End Sub
0 Punkte
Beantwortet von flori006 Einsteiger_in (92 Punkte)
Hallo Rainer

Entschuldige ;

ich habe Dir in meiner ersten Anfrage den Code von einem falschen Makro gesendet.

In meiner ersten Antwort ist es der letzte Code worum es geht,

Nochmals Entschuldigung

Gruß flori006
...