JRobert hat mir auf meine Anfrage von 11.07.05 geantwortet.
Leider kam ich nicht früher ins I-Net. Danke dir für den Post.
Allerdings komme ichnicht so ganz klar.
Hier noch mal Dein Post:
Hallo Nanno,
hier ein kleines Macro.
Grüß Robert
Type MeineDaten
SerienNummer As Long
Defekt As Long
Fehler As Long
End Type
Dim MDaten(230) As MeineDaten, tmpMDaten As MeineDaten
Public
Sub Zählen()
AnfangsZeile = 5
AnzahlSerienNummer = 0
For i = AnfangsZeile To AnfangsZeile + 30
tmpSerienNummer = Cells(i, 3)
If tmpSerienNummer <> "" Then
gefunden = False
For k = 1 To AnzahlSerienNummer
If tmpSerienNummer = MDaten(k).SerienNummer Then
MDaten(k).Defekt = MDaten(k).Defekt + Cells(i, 4)
MDaten(k).Fehler = MDaten(k).Fehler + Cells(i, 5)
gefunden = True
Exit For
End If
Next k
If Not gefunden Then
AnzahlSerienNummer = AnzahlSerienNummer + 1
MDaten(AnzahlSerienNummer).SerienNummer = tmpSerienNummer
MDaten(AnzahlSerienNummer).Defekt = Cells(i, 4)
MDaten(AnzahlSerienNummer).Fehler = Cells(i, 5)
End If
End If
Next i
'Sortieren nach Spalte D
Do
keine_umstell = True
For i = 1 To AnzahlSerienNummer - 1
tmpMDaten = MDaten(i)
If tmpMDaten.Defekt < MDaten(i + 1).Defekt Then
MDaten(i) = MDaten(i + 1)
MDaten(i + 1) = tmpMDaten
keine_umstell = False
End If
Next i
Loop Until keine_umstell = True
'Ausgabe für Spalte D
For i = 1 To AnzahlSerienNummer
Cells(39 + i, 5) = MDaten(i).SerienNummer
Cells(39 + i, 6) = MDaten(i).Defekt
Next i
'Sortieren nach Spalte E
Do
keine_umstell = True
For i = 1 To AnzahlSerienNummer - 1
tmpMDaten = MDaten(i)
If tmpMDaten.Fehler < MDaten(i + 1).Fehler Then
MDaten(i) = MDaten(i + 1)
MDaten(i + 1) = tmpMDaten
keine_umstell = False
End If
Next i
Loop Until keine_umstell = True
'Ausgabe für Spalte E
For i = 1 To AnzahlSerienNummer
Cells(50 + i, 5) = MDaten(i).SerienNummer
Cells(50 + i, 6) = MDaten(i).Fehler
Next i
End Sub
Wenn ich das Macro in ein Modul reinkopiere wird Public rot angezeigt. Fehlermeldung : Bezeichner fehlt
Leider weiss ich nicht was ich hier jetzt angeben soll.
Wenn ich Public auskommentiere geht das Macro nach dem Aufruf in Stop beim Befehl:
MDaten(AnzahlSerienNummer).SerienNummer = tmpSerienNummer
mit der Fehlermeldung: Laufzeitfehler13 Typen unverträglich.
Könntest Du mir hier noch mal helfen? Natürlich darf mir auch jeder andere helfen.
Danke Dir/Euch
Gruß
Hanno