trdshimo
Goto Top

Excel Makro Hilfe - Makro zum Zusammenfassen von Zeilen mehrerer Dateien

Hallo Liebe Community ;)

Ich bin gerade dabei ein Makro zu schreiben, welches wie folgt funktionieren soll.

Ein angegebenes Verzeichnis, soll nach *.XLS Dateien durchsucht werden. Anschließend sollen alle gefundenen Excel Dateien ausgelesen werden. Hier soll immer das gleiche Tabellenblatt und die gleiche Zeile ausgelesen werden und in eine "GesamtDatei" untereinander geschrieben werden.

Folgendes Makro habe ich bereits gefunden, welches auch soweit ganz gut funktioniert, jedoch habe ich ein Problem es auf das Bestimmte Tabellenblatt und die bestimmte Zeile anzupassen anzupassen.

Die auszuelsene Zeile wäre 2:2
Der Name des Tabellenblattes ist "Werte"

Das Ganze soll immer in das Tabelleblatt "Data" der Gesamtdatei ausgelesen werden.

Sub GetData()

Sheets("Data").Select  
Set oMe = ThisWorkbook.ActiveSheet 'Data (= die aktuelle Tabelle der aktuellen Datei)  
Const sDateiPfad As String = "C:\test\" 'Pfad für zu durchsuchende Excel-Dateien; mit Backslash am Ende  

sZeile = "2:2" 'auszulesende Zeile  
iZeile = 2 'ab Zeile 2 in Zieltabelle eintragen  
iSpalte = 2 'ab Spalte A in Zieltabelle eintragen  

Set oFS = CreateObject("Scripting.FileSystemObject")  
For Each oDatei In oFS.GetFolder(sDateiPfad).Files
    sWbName = oDatei.Name
    If Left(LCase(oFS.GetExtensionName(sWbName)), 3) = "xls" Then  
        Workbooks.Open (sDateiPfad & sWbName)

        Sheets("Werte").Select  
        oMe.Cells(iZeile, iSpalte).Value = Workbooks(sWbName).ActiveSheet.Range(sZeile).Value
        oMe.Hyperlinks.Add Anchor:=oMe.Cells(iZeile, iSpalte - 1), Address:=sDateiPfad & sWbName, TextToDisplay:=sDateiPfad & sWbName
        Workbooks(sWbName).Saved = True
        Workbooks(sWbName).Close
        iZeile = iZeile + 1
    End If
Next
End Sub


Da ich das Makro von einem vorhandenen Makro umgeschrieben habe (und dies höchstwahrscheinlich falsch getan habe), erhalte ich aktuell einen "Laufzeitfehler 1004". Die Bemerkungen sind noch aus dem alten Makro welches ich hier im Forum gefunden habe (Excel Dateien durchsuchen und Werte in neue Excel Datei auslesen)

Dies war das Ausgangs Makro:

Sub GetData()

Set oMe = ThisWorkbook.ActiveSheet 'ZielDatei/-Tabelle (= die aktuelle Tabelle der aktuellen Datei)  
Const sDateiPfad As String = "D:\Test\" 'Pfad für zu durchsuchende Excel-Dateien; mit Backslash am Ende  

sZelle1 = "H5" 'auszulesende Zelle  
sZelle2 = "D5" 'weitere auszulesende Zelle  
iZeile = 2 'ab Zeile 2 in Zieltabelle eintragen  
iSpalte = 1 'ab Spalte A in Zieltabelle eintragen  

Set oFS = CreateObject("Scripting.FileSystemObject")  
For Each oDatei In oFS.GetFolder(sDateiPfad).Files
    sWbName = oDatei.Name
    If Left(LCase(oFS.GetExtensionName(sWbName)), 3) = "xls" Then  
        Workbooks.Open (sDateiPfad & sWbName)
        oMe.Cells(iZeile, iSpalte).Value = Workbooks(sWbName).ActiveSheet.Range(sZelle1).Value
        oMe.Cells(iZeile, iSpalte + 1).Value = Workbooks(sWbName).ActiveSheet.Range(sZelle2).Value
        oMe.Hyperlinks.Add Anchor:=oMe.Cells(iZeile, iSpalte + 2), Address:=sDateiPfad & sWbName, TextToDisplay:=sWbName
        Workbooks(sWbName).Saved = True
        Workbooks(sWbName).Close
        iZeile = iZeile + 1
    End If
Next
End Sub

Ich denke das ich einfach zu blöd bin und die Lösung ziemlich einfach ist :P

Kann mir jemand Helfen? Vielen Dank im voraus!

M.f.G.

Content-Key: 197189

Url: https://administrator.de/contentid/197189

Printed on: April 24, 2024 at 20:04 o'clock

Member: bastla
bastla Jan 17, 2013 updated at 21:09:51 (UTC)
Goto Top
Hallo trdshimo und willkommen im Forum!

Da Du nicht genau angibst, ob in den Quelltabellen jeweils nur Werte oder doch auch Formeln stehen, werden im folgenden Ansatz auf jeden Fall Werte übertragen (und ggf Formeln durch ihr Ergebnis ersetzt):
Sub GetData()
Const sDateiPfad As String = "C:\test\" 'Pfad für zu durchsuchende Excel-Dateien; mit Backslash am Ende  
Const sTabQuelle As String = "Werte" 'Tabellenname in den Quelldateien  
Const sTabZiel As String = "Data" 'Tabellenname in der Zieldatei  
sZeile = "2:2" 'auszulesender Bereich (ganze Zeile 2)  
iZeile = 2 'ab Zeile 2 in Zieltabelle eintragen  

Set oMe = ThisWorkbook.Sheets(sTabZiel)

Set oFS = CreateObject("Scripting.FileSystemObject")  
For Each oDatei In oFS.GetFolder(sDateiPfad).Files
    sWbName = oDatei.Name
    If Left(LCase(oFS.GetExtensionName(sWbName)), 3) = "xls" Then  
        Workbooks.Open (sDateiPfad & sWbName) 'Quelldatei öffnen  
        Sheets(sTabQuelle).Range(sZeile).Copy 'Quellbereich (Zeile 2) kopieren und ...  
        oMe.Rows(iZeile).PasteSpecial xlPasteValues '... in Zieldatei nur Werte einfügen  
        oMe.Cells(iZeile, 1).Copy 'Dummy, um Frage nach "großer Menge von Informationen in der Zwischenablage" zu vermeiden  
        Workbooks(sWbName).Saved = True
        Workbooks(sWbName).Close
        iZeile = iZeile + 1 'Zeilennummer füür Zieldatei erhöhen  
    End If
Next
End Sub
Grüße
bastla
Member: trdshimo
trdshimo Jan 18, 2013 at 08:09:55 (UTC)
Goto Top
Hallo bastla,

erst einmal vielen Dank für die Begrüßung und natürlich vor allem für die Hilfe.

Ich habe dein Vorgeschlagenes Makro noch einmal um den Hyperlink erweitert, bekomme aber (auch ohne Hyperlink) den Fehler
"Laufzeitfehler '9': Index außerhalb des gültigen Bereichs"

Also für mich sichtbar ist:
- in meiner "GesamtDatei" wechselt er wie gewollt auf das Blatt "DataBase", dann öffnet er die erste File aus dem angegebenen Verzeichnis und stoppt mit dem Laufzeitfehler. Hat es hier irgendetwas damit zu tun, das das zu öffnende Sheet Schreibgeschützt geöffnet wird?

So sieht es nun aktuell aus:
Sub GetData()
Const sDateiPfad As String = "C:\Test" 'Pfad für zu durchsuchende Excel-Dateien; mit Backslash am Ende  
Const sTabQuelle As String = "Tabelle3" 'Tabellenname in den Quelldateien  
Const sTabZiel As String = "DataBase" 'Tabellenname in der Zieldatei  
sZeile = "4:4" 'auszulesender Bereich  
iZeile = 2 'ab Zeile 2 in Zieltabelle eintragen  

Set oMe = ThisWorkbook.Sheets(sTabZiel)

Set oFS = CreateObject("Scripting.FileSystemObject")  
For Each oDatei In oFS.GetFolder(sDateiPfad).Files
    sWbName = oDatei.Name
    If Left(LCase(oFS.GetExtensionName(sWbName)), 3) = "xls" Then  
        Workbooks.Open (sDateiPfad & sWbName) 'Quelldatei öffnen  
        Sheets(sTabQuelle).Range(sZeile).Copy 'Quellbereich (Zeile 2) kopieren und ...  
        oMe.Rows(iZeile).PasteSpecial xlPasteValues '... in Zieldatei nur Werte einfügen  
        oMe.Cells(iZeile, 1).Copy 'Dummy, um Frage nach "großer Menge von Informationen in der Zwischenablage" zu vermeiden  
        oMe.Hyperlinks.Add Anchor:=oMe.Cells(iZeile, iSpalte - 1), Address:=sDateiPfad & sWbName, TextToDisplay:=sDateiPfad & sWbName 'Hyperlink  
        Workbooks(sWbName).Saved = True
        Workbooks(sWbName).Close
        iZeile = iZeile + 1 'Zeilennummer für Zieldatei erhöhen  
    End If
Next
End Sub

Noch einmal Vielen Dank an dich!

M.f.G.
Member: bastla
bastla Jan 18, 2013 updated at 09:12:22 (UTC)
Goto Top
Hallo trdshimo!

Aufgrund der Fehlermeldung würde ich vermuten, dass es keine Tabelle mit dem Namen "Tabelle3" gibt ...

Hinsichtlich des Hyperlinks noch eine Anmerkung: Da es keine Variable "iSpalte" mehr gibt (hatte ich als unnötig gesehen, da ja eine ganze Zeile eingefügt wird) kann die Zeile 18 so ohnehin nicht funktionieren, und das "- 1" wäre vermutlich auch zu überdenken - daher besser gleich die Spalte für den Hyperlink unmittelbar (ohne Berechnung) angeben (entweder mittels einer Konstanten / Variablen, die Du am Anfang des Makros einfügst oder zur Not auch einfach durch Eintrag der Spalte in die Zeile 18).

Grüße
bastla

P.S.: Spannend finde ich, wie sich in kurzer Zeit Tabellennamen (ehemals "Werte") und Zeilennummern (gestern noch 2) ändern können ... face-wink
Member: trdshimo
trdshimo Jan 18, 2013 updated at 09:18:57 (UTC)
Goto Top
Hallo bastla,

in den Excel Datein befindet sich zu 100% ein Sheet mit dem Namen "Tabelle3" ich habe dies noch ein paar mal gegengeprüft und auch die Namen auf beispeilsweise "tab3" geändert, das Ergebnis ist hier leider der gleiche Laufzeitfehler.

Hast du vlt. noch eine Idee? face-smile

Zitat von @bastla:
P.S.: Spannend finde ich, wie sich in kurzer Zeit Tabellennamen (ehemals "Werte") und Zeilennummern (gestern noch 2)
ändern können ... face-wink

hrhr, dies habe ich nur gemacht um ein bisschen rumzutesten ;)


Vielen Dank!

Mit freundlichen Grüßen
Member: bastla
bastla Jan 18, 2013 at 10:25:35 (UTC)
Goto Top
Hallo trdshimo!

In welcher Zeile tritt denn der Fehler auf?

Grüße
bastla
Member: trdshimo
trdshimo Jan 18, 2013 updated at 11:40:24 (UTC)
Goto Top
Hey bastla,

also wenn ich das Makro mit F8 durchgehe erscheint der Fehler nach Zeile 15

sprich:
Sheets(sTabQuelle).Range(sZeile).Copy 'Quellbereich (Zeile 2) kopieren und ...  

Vielen Dank!
Member: bastla
bastla Jan 18, 2013 updated at 12:17:11 (UTC)
Goto Top
Hallo trdshimo!

Sorry - das lässt weiterhin keinen anderen Schluss zu, als dass das Blatt nicht gefunden wird - ev ein Leerzeichen vor oder nach dem Namen der Tabelle?

Wenn Du sicher bist (oder auch nur, um den Rest testen zu können face-wink), dass es immer um das 3. Blatt der Mappe geht, könntest Du in Zeile 3 anstelle des Namens "Tabelle3" auch die Zahl 3 verwenden (dann aber natürlich nicht mit "As String" - den Typ kannst Du auch weglassen) ...
In Zeile 2 fehlt übrigens am Ende des Pfades der Backslash.
Eine sinnvolle Ergänzung (wenn auch eher nur für die Optik) wäre noch, unmittelbar vor "End Sub" eine Zeile
Application.CutCopyMode = False
einzufügen.

Grüße
bastla
Member: trdshimo
trdshimo Jan 18, 2013 updated at 14:02:11 (UTC)
Goto Top
Hey Bastla,

ok - das Makro läuft nun durch wenn ich "Tabelle3" durch 3 ohne Sting ersetze. Jedoch kopiert er 4:4 nicht in die Gesamtdatei :O Er springt nun fleißig durch die ganzen *.xls und wählt auch die richtigen Zeilen in der Gesamtdatei, jedoch bleiben die Spalten leer :/

Sorry wenn ich mich so doof anstelle, aber ich glaube ich habe das (noch) Makro nicht zerstört :P


Vielen Dank!

//edit:
Hallo noch einmal,

sorry natürlich war es mein Fehler :D
Das Makro lag die ganze Zeit in "DieseArbeitsmappe" wenn ich es von dem Table "Data" aus starte funktioniert es :P

Ich teste jetzt noch einmal ein wenig rum, aber eigentlich sollte es nun laufen.

Bastla, noch einmal vielen Dank!
Member: trdshimo
trdshimo Jan 18, 2013 updated at 14:30:00 (UTC)
Goto Top
Hallo Bastla,

nun habe ich doch noch einmal eine Frage. Anfangs dachte ich es müsste reichen einfach die komplette Zeile zu kopieren (was nun auch wunderbar funktioniert), aber da ich in den auszulesenen Tabellen nicht alle Spalten nutze und in der Gesamtdatei noch einige Spalten vorschieben wollte, habe ich nun von "2:2" auf "B4:AA4" umgemünzt.

Wie bekomme ich es nun hin, das ich doch wieder eine "iSpalte" mit in das Makro bauen kann, sprich ich entscheiden kann, ab welcher Spalte und Zeile er mir die Werte der Tabellen "B4:AA4" in die Gesamt-Tabelle schreibt?

Noch eine kleine Frage, wie kann ich es vermeiden das dass Makro abbricht wenn mal kein "Tabelle3" Blatt existiert, gibt es hier eine Art "Bei Fehler überspringen" (was genial wäre, wäre natürlich eine msgBox die die Fehlerhaften Dateien am Ende anzeigt, aber das wäre purer Luxus)

Könnte das Makro auch so erweitet werden, das er die gleiche Syntax auf 2 Dateipfade anwendet, die ergebnisse dann dementsprechend einfach untereinander wegschreibt? Sprich erst Ergebnisse aus Dateipfad 1, beispiel Zeile 1 bis 50 und dann ab Zeile 51 die Ergebnisse aus Dateipfad 2?

So sieht mein Makro aktuell aus

Sub GetData()

'Data Sheet ab Zeile 2 löschen  
Worksheets("Data").Activate  
Range("2:65536").Clear  

Const sDateiPfad As String = "C:\test\" 'Pfad für zu durchsuchende Excel-Dateien; mit Backslash am Ende  
Const sTabQuelle As String = "Tabelle3" 'Tabellenname in den Quelldateien  
Const sTabZiel As String = "Data" 'Tabellenname in der Zieldatei  
sZeile = "B4:AA4" 'auszulesender Bereich  
iZeile = 2 'ab Zeile 2 in Zieltabelle eintragen  

Set oMe = ThisWorkbook.Sheets(sTabZiel)

Set oFS = CreateObject("Scripting.FileSystemObject")  
For Each oDatei In oFS.GetFolder(sDateiPfad).Files
    sWbName = oDatei.Name
    If Left(LCase(oFS.GetExtensionName(sWbName)), 3) = "xls" Then  
        Workbooks.Open (sDateiPfad & sWbName) 'Quelldatei öffnen  
        Sheets(sTabQuelle).Range(sZeile).Copy 'Quellbereich (Zeile 2) kopieren und ...  
        oMe.Rows(iZeile).PasteSpecial xlPasteValues '... in Zieldatei nur Werte einfügen  
        oMe.Cells(iZeile, 1).Copy 'Dummy, um Frage nach "großer Menge von Informationen in der Zwischenablage" zu vermeiden  
        oMe.Hyperlinks.Add Anchor:=oMe.Cells(iZeile, "A"), Address:=sDateiPfad & sWbName, TextToDisplay:=sDateiPfad & sWbName 'Hyperlink  
        Workbooks(sWbName).Saved = True
        Workbooks(sWbName).Close
        iZeile = iZeile + 1 'Zeilennummer füür Zieldatei erhöhen  
    End If
Next
Application.CutCopyMode = False

End Sub


Noch einmal VIelen Dank!!!
Member: bastla
bastla Jan 18, 2013 updated at 15:14:27 (UTC)
Goto Top
Hallo trdshimo!

Dann etwa so:
Sub GetData()
aPfade = Array("C:\Test", "D:\Versuch", "E:\Probe") 'Pfade für zu durchsuchende Excel-Dateien; ohne Backslash am Ende  
Const sTabQuelle As String = "Tabelle3" 'Tabellenname in den Quelldateien  
Const sTabZiel As String = "Data" 'Tabellenname in der Zieldatei  
sZeile = "B4:AA4" 'auszulesender Bereich  
iZeile = 2 'ab Zeile 2 in Zieltabelle eintragen  
iSpalte = 3 'ab dieser Spalte Daten in Zieltabelle einfügen  

Set oMe = ThisWorkbook.Sheets(sTabZiel) 'Sammeltabelle als Objekt zwischenspeichern  

oMe.Range("2:65536").Clear 'Data Sheet ab Zeile 2 löschen  

Set oFS = CreateObject("Scripting.FileSystemObject")  
For Each sDateiPfad In aPfade 'alle Pfade durchgehen  
    For Each oDatei In oFS.GetFolder(sDateiPfad).Files 'alle Dateien des aktuellen Pfads durchgehen  
        sWbName = oDatei.Name
        If Left(LCase(oFS.GetExtensionName(sWbName)), 3) = "xls" Then  
            Workbooks.Open (oDatei.Path) 'Quelldatei öffnen  
            On Error Resume Next
            Sheets(sTabQuelle).Range(sZeile).Copy 'Quellbereich kopieren und ...  
            If Err.Number = 0 Then '... falls kein Fehler aufgetreten ist ...  
                On Error GoTo 0
                oMe.Cells(iZeile, iSpalte).PasteSpecial xlPasteValues '... in Zieldatei nur Werte einfügen  
                oMe.Cells(iZeile, 1).Copy 'Dummy, um Frage nach "großer Menge von Informationen in der Zwischenablage" zu vermeiden  
                oMe.Hyperlinks.Add Anchor:=oMe.Cells(iZeile, "A"), Address:=oDatei.Path, TextToDisplay:=oDatei.Path 'Hyperlink  
                iZeile = iZeile + 1 'Zeilennummer für Zieldatei erhöhen  
            Else 'Bei Fehler:  
                On Error GoTo 0
                sErrors = sErrors & vbNewLine & oDatei.Path 'Dateipfad der Liste hinzufügen  
            End If
            Workbooks(sWbName).Saved = True
            Workbooks(sWbName).Close
        End If
    Next 'oDatei  
Next 'sDateiPfad  
Application.CutCopyMode = False 'Kopiermodus beenden  
If sErrors <> "" Then MsgBox sErrors, vbCritical, "Fehlerhafte Dateien" 'Falls vorhanden, fehlerhafte Dateien anzeigen  
End Sub
Es ist bei der Angabe der Pfade nicht mehr nötig, am Ende einen Backslash zu setzen.

Grüße
bastla
Member: trdshimo
trdshimo Jan 21, 2013 at 08:27:35 (UTC)
Goto Top
Bastla,

nur ein wort... GENIAL!

Es funktioniert genauso wie ich es brauche! VIELEN VIELEN VIELEN DANK!!!
Member: Paterson
Paterson Dec 06, 2016 at 14:54:03 (UTC)
Goto Top
Hallo bastla,

ich bin recht neue Hier und hoffe sehr auf ihre Unterstützung.
ich bekomme jeden tag eine Datei mit mehrere Excel Tabellen
ich muss aus dem Dateien nur einen bestimmten Datenblatt auswerten.
so sehen sie ungefähr.
Block Weight [kg] X Y Z Material Density
SA2101 334514 1 2 3 A 8000kg/m3
SA2101 044514 1 2 3 A 8000kg/m3
SA3101 334514 1 2 3 A 8000kg/m3
SA3101 334514 1 2 3 A 8000kg/m3
SA2101 334514 1 2 3 A 8000kg/m3
SA5101 334514 1 2 3 A 8000kg/m3
SA5101 334514 1 2 3 A 8000kg/m3
als Beispiel

ich möchte alle typen aussuchen und summieren in gruppen in eine anderen Tabelle
und automisch neue typen erkennen und ausführen.

folgendes habe ich geschrieben aber er speichert die Daten nicht in die neue Tabelle.

Application.ScreenUpdating = False
' turns off screen updating
Application.DisplayStatusBar = True
' makes sure that the statusbar is visible
' Application.Wait Now + TimeValue("00:00:02")


'---------------------------------------------------
'Initialisierung der Variablen
'---------------------------------------------------

Dim oMe As Object, sSuchbegriff()
Dim oFS As Object
Dim oDatei As Object

Dim actRow As Long
Dim actGroup As String
Dim sBereich As String
Dim sKennz As String
Dim sWbName As String
Dim bEintrag As Boolean
Dim wsTabelle As Worksheet


Dim rFound As Range
Dim vWert As Variant


Dim actGroupNumber As Integer 'Zeile, in der die erste Zusammenfassung geschrieben wird
Dim iSbMax As Integer
Dim iLK As Integer
Dim i As Integer
Dim iZeile As Integer

Dim totalWeight As Double 'Totales Gewicht; Summation der einzelnen Posten
Dim totalGroupWeight As Double 'Totales aktuelles Gruppengewicht
Dim totaladdedGroupWeight As Double 'Totales Gewicht, Summation der einzelnen Gruppen
'---------------------------------------------------
'Setzen der Variablen
'---------------------------------------------------

Set oMe = ThisWorkbook.Worksheets("Auswertung") 'Zieltabelle (in der gerade geöffneten Datei)
'iZeile = 2 'ab dieser Zeile Ergebnisse in die Zieltabelle eintragen
actRow = 5 'Zeile, in der die Iteration beginnt
actGroupNumber = 5

totalWeight = 0
totalGroupWeight = 0
totaladdedGroupWeight = 0

Const sDateiPfad As String = "C:\Users\wis-ikk\Desktop\2016_11_04" 'Pfad für zu durchsuchende Excel-Dateien; mit Backslash am Ende
sKennz = "HULL WCOG" 'Nur Tabellen, deren Name mit dem Kennzeichen beginnt, verarbeiten

iLK = Len(sKennz) 'Länge des Tabellennamen-Kennzeichens
Set oFS = CreateObject("Scripting.FileSystemObject")
For Each oDatei In oFS.GetFolder(sDateiPfad).Files
sWbName = oDatei.Name
Workbooks.Open (oDatei.Path)
For Each wsTabelle In Workbooks(sWbName).Worksheets()
If StrComp(Left(wsTabelle.Name, iLK), sKennz, vbTextCompare) = 0 Then

bEintrag = False
For i = 0 To iSbMax

actGroup = Worksheets("HULL WCOG").Cells(actRow, 2)


Do While Not Worksheets("HULL WCOG").Cells(actRow, 1) = ""

Application.StatusBar = "Processing Group " & actGroup & " | Processed Items: " & actRow

If (actGroup <> Worksheets("HULL WCOG").Cells(actRow, 2)) Then

'Group Values speichern
Worksheets("HULL WCOG").Cells(actGroupNumber, 14) = actGroup
Worksheets("HULL WCOG").Cells(actGroupNumber, 15) = totalGroupWeight

'neuen Gruppennamen definieren
actGroup = Worksheets("HULL WCOG").Cells(actRow, 2)
actGroupNumber = actGroupNumber + 1

totaladdedGroupWeight = totaladdedGroupWeight + totalGroupWeight

totalGroupWeight = Worksheets("HULL WCOG").Cells(actRow, 5)


Else
Dim tempGroupfromPartName As String
tempGroupfromPartName = Left(Worksheets("HULL WCOG").Cells(actRow, 3), 6)


If Not (tempGroupfromPartName = actGroup) Then
Dim Mldg, Stil, Titel, Antwort
Mldg = "BLOCK MODULE NAME " & actGroup & " mit PART NAME " & tempGroupfromPartName & " nicht konsistent! Fortfahren?" ' Meldung definieren.
Stil = vbYesNo + vbCritical + vbDefaultButton2 ' Schaltflächen definieren.
Titel = "MsgBox-Demonstration" ' Titel definieren.

Antwort = MsgBox(Mldg, Stil, Titel) ' Meldung anzeigen.

If Antwort = vbYes Then ' Benutzer hat "Ja" gewählt.

Else ' Benutzer hat "Nein" gewählt.
Exit Sub
End If


End If

totalGroupWeight = totalGroupWeight + Worksheets("HULL WCOG").Cells(actRow, 5)

End If


totalWeight = totalWeight + Worksheets("HULL WCOG").Cells(actRow, 5)

actRow = actRow + 1

Loop


totaladdedGroupWeight = totaladdedGroupWeight + totalGroupWeight

Worksheets("HULL WCOG").Cells(actGroupNumber, 14) = actGroup
Worksheets("HULL WCOG").Cells(actGroupNumber, 15) = totalGroupWeight


Worksheets("HULL WCOG").Cells(actGroupNumber + 2, 14) = "Total Weight"
Worksheets("HULL WCOG").Cells(actGroupNumber + 2, 15) = totalWeight
Worksheets("HULL WCOG").Cells(actGroupNumber + 3, 14) = "Total Added Group Weight"
Worksheets("HULL WCOG").Cells(actGroupNumber + 3, 15) = totaladdedGroupWeight

Next
If bEintrag Then iZeile = iZeile + 1 'mindestens ein Eintrag erfolgt, daher neue Zeile
End If


Next
Workbooks(sWbName).Saved = True

Workbooks(sWbName).Close

Next
Application.ScreenUpdating = True
' gives control of the statusbar back to the programme

End Sub


was mache ich den falsch ????

Leute bitte Hiiiilfeeeeeeeee!!!!!!!!!!!!!!!!!!!!!!!!