Registriert seit: 10.04.2014
Version(en): 2016 + 365
20.07.2015, 13:47
(Dieser Beitrag wurde zuletzt bearbeitet: 20.07.2015, 13:48 von Rabe.)
Hi,
jetzt versuche ich es auch noch:
(20.07.2015, 12:48)karomue schrieb: Irgendwie verstehen wir uns nicht, woran das wohl liegt???
Ich habe dazu jetzt schon wiederholt geschrieben: das ist eine neue Schleife, warum siehst du das nicht??? Du willst mir immer beweisen ,dass ich einen Fehler gemacht habe: also nochmal: DAS IST MIT ÜBERWACHUNG IM EINZELSCHRITTVERFAHREN GEPRÜFT, UND ES LÄUFT EINWANFREI, BIS EBEN AUF DIE TATSACHE, DASS DIE ERSTE LEERE zELLE IN REIHE 76 NICHG GEFUNDEN WIRD:
Mal ne schüchterne Frage: lesen kannst du aber schon, oder?
hier Dein Code-Teil mit der For-Schleife, gekürzt um ausgeblendete Zeilen:
For l = 1 To 30 ' Beginn For
If Cells(j + l, 3).Value <> "" Then ' Beginn Schleife 1
Cells(j + l, 3).Select
If Cells(j + l, 3).Value = " " Then ' Beginn Schleife 2 innerhalb Schleife 1
Stop
End If ' Ende Schleife 2 innerhalb Schleife 1
a = ""
zaehl = j + l
Cells(zaehl, 3).Select
End If ' Ende Schleife 1
Next l ' Ende For
VBA/HTML - CodeConverter für Office-Foren, AddIn für Excel/Word 2000-2013 - komplett in VBA geschrieben von Lukas Mosimann. Projektbetreuung durch mumpel Code erstellt und getestet in Office 15
Die Schleife 2 ist zwar eine neue Schleife, die aber im True-Teil der Schleife 1 (Value <>"") läuft.
Wenn Du dann in der Schleife 2 auf Value = "" prüfst, kann es dort niemals ein True geben.
Und das ist genau das, was Stefan dauernd schreibt!
Eher geht es so (ungetestet, da ohne Datei):
For l = 1 To 30 ' Beginn For
If Cells(j + l, 3).Value <> "" Then ' Beginn Schleife 1
Cells(j + l, 3).Select
Else
' If Cells(j + l, 3).Value = " " Then ' Beginn Schleife 2 innerhalb Schleife 1
Stop
' End If ' Ende Schleife 2 innerhalb Schleife 1
a = ""
zaehl = j + l
Cells(zaehl, 3).Select
End If ' Ende Schleife 1
Next l ' Ende For
VBA/HTML - CodeConverter für Office-Foren, AddIn für Excel/Word 2000-2013 - komplett in VBA geschrieben von Lukas Mosimann. Projektbetreuung durch mumpel Code erstellt und getestet in Office 15
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
Hi Charly,
hier, in diesem Forum, geben alle Helfer ihr Bestes, um einem Fragesteller zu einer Lösung seines Problems zu verhelfen. Und das geschieht alles unentgeltlich in der Freizeit des einzelnen. Wir alle machen das aus reiner Freude und aus Spaß am Exceln.
Und nun bitte ich dich, das Ganze einmal aus der Sicht eines Helfers zu betrachten. Eine Metapher soll helfen, das aus dieser Sicht Gewonnene zu verstehen.
In einer Stadt haben die Inhaber der Autowerkstätten beschlossen, Tipps, Tricks und Hilfen kostenlos an alle Autofahrer abzugeben. Gedacht war dabei, dass der Hilfesuchende, nennen wir ihn einfach Anton, sich eine Werkstatt aussucht und dort mit seinem Problem vorstellig wird.
Anton, der scheinbar einiges von seinem Gefährt versteht, bemühte die Mitarbeiter des ersten Autohauses (Weiß-Blau) und stellte seine Frage, warum denn das Licht an seinem Fahrzeug nicht ginge. Es gingen Tipps und Fragen ein nach dem Motto:
Hast du die Sicherungen überprüft?
Schau mal nach dem Glühfaden der Lampe.
Sitzt die Lampe richtig in ihrer Halterung?
Auf alles wusste Anton eine Antwort und wiederholte aber stereotyp, dass sein Licht nicht brenne. Nun forderte ein Mitarbeiter von Weiß-Blau Anton auf, mit seinem Wagen vorzufahren, da alle Tipps ein Stochern im Nebel waren. Mit einer Nachschau wäre das Problem sicherlich in kürzester Zeit behoben. Doch Anton, ganz sicher nicht unter mangelndem Selbstbewusstsein leidend, war der Ansicht, dass das nichts bringe, da ja nicht das Auto, sondern nur etwas im Bereich der Beleuchtung defekt sei.
Da die Mitarbeiter, zugegebenermaßen etwas genervt, wiederholt aufforderten, das Auto zur Verfügung zu stellen, wechselte Anton kurzerhand zur Werkstatt Nippon und stelle den dortigen Mitarbeitern dieselbe Frage wie im Haus Weiß-Blau.
Doch, wie kann das sein, auch hier verlangten die Helfer nach einigem Hin und Her nach dem Fahrzeug und warteten mit fast identischen Gründen auf. Irgendwie muss Anton das dann missverstanden haben und gab seinen Worten ein Gewicht, das die Helfer nicht zu tragen bereit waren. Auch sie konterten zum Teil ge-, ja schon fast entnervt mit nachdrücklichem Ton.
Aber sind die Helfer wirklich nicht imstande, so eine Beleuchtungseinheit auch per Ferndiagnose wieder zum Leuchten zu bringen? Oder haben die Helfer einfach keinen Bock? Ich glaube nicht, denn alle, die in diesen Werkstätten unentgeltlich – zum Teil auch nachts – mit Rat und Tat den Fragern zur Seite stehen, tun dies aus reinem Spaß an der Freude. Es ist ihr Hobby!
Doch wie kann man Anton nun dazu bringen, dass er mal etwas nachdenkt und den Helfern Recht gibt mit ihrer Meinung, dass nur durch Kenntnis der gesamten Situation, sprich durch Inaugenscheinnahme des ganzen (!) Fahrzeugs adäquate Hilfe geleistet werden kann? Denn schließlich machen sie das alles schon seit vielen, vielen Jahren. Und in der Regel immer erfolgreich. An den Helfern kann es also nicht liegen. Und am Fragesteller?
Nun, das sollte Anton schon selbst herausfinden. Sicherlich hilft dabei ein stetes freundliches Wort, eine fruchtbare Kooperation, und die Einsicht, dass niemand ihm schaden oder aus Jux und Tollerei das Auto begutachten will.
Und so könnte die Lösung für Antons Problem aussehen:
1. Er entscheidet sich, das Auto nicht vorzustellen und beharrt auf seiner Meinung, dass gute Mechaniker den Fehler auch so finden müssen. Auch auf die Gefahr hin, dass der beste und gutmütigste unter ihnen irgendwann die Lust verliert, weil er partout nichts zur Suche in der Hand hat.
2. Er entscheidet sich, das Fahrzeug vorzufahren und es den Helfern zur Begutachtung zur Verfügung zu stellen. Diese sehen sich alle möglichen Fehlerquellen an. Einer von ihnen entdeckt dann ganz versteckt eine blanke Kabelstelle, die die Ursache für all die unnötigen vorausgegangenen Fragen, Nachfragen, unschöne Töne und dergleichen, war. Bei sofortiger Kenntnis dieses Defekts hätte die ganze Hilfsaktion längst abgeschlossen sein können. Einem nächsten Hilfesuchenden könnte geholfen werden.
Hi Charly,
ist zwar ein langer Text geworden, nicht fachgebunden, aber aus meiner Sicht hilfreich, etwas Schärfe aus den Tönen heraus zu nehmen. Bitte denke wirklich daran, dass dir geholfen wird, aber der Helfer entscheidet, was er dazu benötigt.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Registriert seit: 19.07.2015
Version(en): 365/2016
Hallo WillWissen.
Schönes Beispiel. Aber es hinkt.
Schau mal: ich habe einen Code der in einer Spalte mit (Datumszellen) das die 1. Zelle finden muss, die belegt ist: dieser Teil läuft.
Danach muss die erste Zelle gefunden werden, die leer ist. Das Makro läuft in diesem Schleifenteil leider über die leere Zelle hinaus und stoppt nicht, es macht hier absolut keinen Sinn, das komplette Makro hier rein zu stellen. Bedauerlich, dass man immer darauf rumhackt das Makro zu kriegen, obwohl es überhaupt nichts zu Klärung beiträgt.
Belegt ist das ganze über Überwachungsausdrücke (die sich leider nicht kopieren lassen) in der alle Variablen i,j,k,l, alle cells... .values die interessant sind, vergl, zaehl und lRow aufgenommen wurden. Ich weiß also sehr genau was wann/wo passiert, so ist z.B. wenn die Schleife an der leeren Zelle ankommt der Typ Variant/Empty. Nun scheitern alle versuchten Abfragen - wobei alleine eigentlich schon {= ""} reichen sollte. Das sollten sich die Helfer mal g a n z langsam auf der Zunge zergehen lasse. Wundert Dich noch, dass ich schon ne Weile sauer bin? Um auf Dein Beispiel zurückzukommen: hier hilft das Auto wirklich nichts. Aber vielleicht glaubst Du mir ja.... Oder siehst Du das anders, was könnte ich denn noch tun zur Klärung? Mir fällt nix mehr ein, bin dabei aufzugeben. Außer Anfeindungen nix gewesen...
LG, Charly
Registriert seit: 19.07.2015
Version(en): 365/2016
(20.07.2015, 13:47)Rabe schrieb: Hi,
jetzt versuche ich es auch noch:
(20.07.2015, 12:48)karomue schrieb: Irgendwie verstehen wir uns nicht, woran das wohl liegt???
Ich habe dazu jetzt schon wiederholt geschrieben: das ist eine neue Schleife, warum siehst du das nicht??? Du willst mir immer beweisen ,dass ich einen Fehler gemacht habe: also nochmal: DAS IST MIT ÜBERWACHUNG IM EINZELSCHRITTVERFAHREN GEPRÜFT, UND ES LÄUFT EINWANFREI, BIS EBEN AUF DIE TATSACHE, DASS DIE ERSTE LEERE zELLE IN REIHE 76 NICHG GEFUNDEN WIRD:
Mal ne schüchterne Frage: lesen kannst du aber schon, oder?
hier Dein Code-Teil mit der For-Schleife, gekürzt um ausgeblendete Zeilen:
For l = 1 To 30 ' Beginn For
If Cells(j + l, 3).Value <> "" Then ' Beginn Schleife 1
Cells(j + l, 3).Select
If Cells(j + l, 3).Value = " " Then ' Beginn Schleife 2 innerhalb Schleife 1
Stop
End If ' Ende Schleife 2 innerhalb Schleife 1
a = ""
zaehl = j + l
Cells(zaehl, 3).Select
End If ' Ende Schleife 1
Next l ' Ende For
VBA/HTML - CodeConverter für Office-Foren, AddIn für Excel/Word 2000-2013 - komplett in VBA geschrieben von Lukas Mosimann. Projektbetreuung durch mumpel Code erstellt und getestet in Office 15
Die Schleife 2 ist zwar eine neue Schleife, die aber im True-Teil der Schleife 1 (Value <>"") läuft.
Wenn Du dann in der Schleife 2 auf Value = "" prüfst, kann es dort niemals ein True geben.
Und das ist genau das, was Stefan dauernd schreibt!
Eher geht es so (ungetestet, da ohne Datei):
For l = 1 To 30 ' Beginn For
If Cells(j + l, 3).Value <> "" Then ' Beginn Schleife 1
Cells(j + l, 3).Select
Else
' If Cells(j + l, 3).Value = " " Then ' Beginn Schleife 2 innerhalb Schleife 1
Stop
' End If ' Ende Schleife 2 innerhalb Schleife 1
a = ""
zaehl = j + l
Cells(zaehl, 3).Select
End If ' Ende Schleife 1
Next l ' Ende For
VBA/HTML - CodeConverter für Office-Foren, AddIn für Excel/Word 2000-2013 - komplett in VBA geschrieben von Lukas Mosimann. Projektbetreuung durch mumpel Code erstellt und getestet in Office 15 Hallo Ralf,
nein, so geht das nicht. Wie jetzt schon mehrfach gepostet. Nimms nich übel. aber ich bin es langsam leid bei jedem der sich hier äußert immer wiede die gleichen Einwände zu schreiben.
Registriert seit: 11.04.2014
Version(en): '97 bis 2016; 365
Hallo,
Zitat:Nun scheitern alle versuchten Abfragen - wobei alleine eigentlich schon {= ""} reichen sollte
... wobei die Zelle, in der das steht eben nicht leer ist. Da steht eine Formel drin.
Aber mach mal, Du schaffst das schon.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!
Grüße aus Norderstedt, Peter
Registriert seit: 03.09.2014
Version(en): 2016
Du willst es einfach nicht verstehen. Schade
Ich hoffe nur, Du kommst mal nicht in so eine Situation wie wir, wenn ja kannst Du uns dann sicher verstehen oder auch nicht.
Ich bin raus :16:
Gruß
Fred0
Meine Antworten sind freiwillig und ohne Gewähr!
Wenn nichts angegeben beziehe ich mich auf Excel 2016
Registriert seit: 19.07.2015
Version(en): 365/2016
Äh, was ssoll da für eine Formel drin stehen? Die Tabelle wird über Access generiert mit
Select Case Monatswert
Case "1", "01", " 1"
DoCmd.OutputTo acOutputReport, "DatumAbfrageAusgaben", acFormatXLS, _
"DatumAbfrageAusgabenJanuar" & Jahreswert & ".xls", True
da kommt keine Formel vor und Excel generiert sicher keine nur aus Jux und Topllerei.
Registriert seit: 19.07.2015
Version(en): 365/2016
(20.07.2015, 15:27)Fred0 schrieb: Du willst es einfach nicht verstehen. Schade
Ich hoffe nur, Du kommst mal nicht in so eine Situation wie wir, wenn ja kannst Du uns dann sicher verstehen oder auch nicht.
Ich bin raus :16: Ich würde in diesem Fall mal genau lesen und mir eine eigene Prüfmöglichkeit überlegen...
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
Hi Charly,
fachlich gesehen kann ich dazu absolut nichts sagen - ich kenne mich in der Materie VBA zu wenig aus. Aber was hindert dich denn wirklich, deine Datei, natürlich anonymisiert, den Helfern zur Verfügung zu stellen. Ich schrieb ja in meinem kleinen Beitrag (ähmm), dass die Helfer entscheiden müssen, was sie benötigen.
Zitat:Nun scheitern alle versuchten Abfragen - wobei alleine eigentlich schon {= ""} reichen sollte.
Ich meine gelesen zu haben, dass die Frage auftauchte, ob die Zellen tatsächlich leer sind. Das zu prüfen wäre mit der Datei bestimmt ein Leichtes.
Glaub' mir, niemand, aber auch wirklich niemand hier, feindet dich an. Du merkst doch selber, dass immer wieder Vorschläge kommen, jedoch nicht dem entsprechen, was du benötigst. In diesem Sinn will ich mit den folgenden Punkten diese Diskussion abschließen:
- Wenn es keine nachvollziehbaren Hinderungsgründe gibt, dann komme doch der Bitte der Helfer nach der Datei nach. Es ist doch nur zu deinem Vorteil
- Bedenke bitte, dass die Helfer entscheiden müssen, was sie für ihre Hilfe selber benötigen. Du kennst deine Datei, du weißt, wo was steckt. Erklärungen werden dann mit genau diesem eigenen Wissen abgegeben - ein Nichteingeweihter fängt eventuell mit diesen Erklärungen nichts an oder kann diesen ohne weitere Einblicke nicht folgen.
- unschöne Töne sollten (natürlich von allen Seiten) grundsätzlich vermieden werden.
- Last, but not least - du suchst Hilfe. Mit entsprechender Mitwirkung wirst du sie auch sicherlich bald haben.
In diesem Sinne ziehe ich mich aus dieser Diskussion zurück und lese nur noch mit. Natürlich drücke ich dir alle damit du bald deine Lösung hast.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Registriert seit: 19.07.2015
Version(en): 365/2016
Code: Private Const Schriftart As String = "Arial"
Private Const Schriftgroesse As Integer = 8 'ColorIndex
Private Const ColorIndgelb As Integer = 6
Private Const ColorIndrot As Integer = 46
Private Const ColorIndgrün As Integer = 4
Private i As Integer
Private Korr As Integer
Dim ExcelSheet As Object
Dim Zuordng(1 To 16, 1 To 2) As String '("Arbeitsmittel","Computer"), 1 für Monatsblatt, 2 für Jahresblatt
Dim Monatsfeld(1 To 12) 'Hilfsfeld für SummeMonatGruppe
Dim SummeMonatGruppe(1 To 12, 1 To 11) As String '12 Monate/11Gruppen=Arbeitsmittel, Computer
Dim LenJahrMonat(1 To 16, 1 To 2) As Integer 'AnzahlGruppeneinträge/Anzahl (Jahr-Monat)
Dim EndPosJahrMonat(1 To 16, 1 To 2) As Integer
Dim DateiName As String
Dim Jahr As String
Dim FileName As String
Dim RehaSum As Variant
Private Declare Function GetComputerName Lib "kernel32" _
Alias "GetComputerNameA" (ByVal lpBuffer As String, _
nSize As Long) As Long
'declare PtrSafe....
Dim lRow As Long
Sub AusgabeAktuell()
'K.R. Müller, erstellt im April 1998
'hier für 2001 geändert
'geändert 11.9.2000
'geändert für allgem. Jahreseingabe 15.1.2001
'letzte Änderung 20.1.2002
'
Dim Vertical As Integer
Dim WertJahr As Single
Dim WertMonat As Single
Dim AktuelleMappe As String
Dim AktuellesFenster As String
Anzeigejahr = Mid$(Now, 7, 4)
Jahr = InputBox("Bitte Auswerte-Jahr eingeben: z.B. 2000, 2001" + Chr(13) + Chr(10) + _
Chr(10) + ">>Entspr. Ausgabe-File muß geöffnet sein!<<", "Jahres-Abfrage ", Anzeigejahr)
Anzeigemonat = Mid$(Now, 4, 2)
Monat = InputBox("Bitte Auswerte-Monat eingeben: z.B. Januar/Jan/jan/1 ...", "Monats-Abfrage", Anzeigemonat)
M1 = "DatumAbfrageAusgaben"
M2 = Right(Jahr, 2) + ".xls"
'ChDir "Arbeitsplatz" ' "E_Platte\Excel_MP"
'AusgabenFileSuchen
Select Case HolComputerName
Case "CHARLY-PC"
DateiName = "D:\Neuer Aktenkoffer\Ausgaben " & Jahr & ".xls"
Case "CHARLYS-NB"
'DateiName = "D:\Aktenkoffer\Ausgaben " & Jahr & ".xls"
DateiName = "c:\Benutzer\karomue\EigeneDokumente\Aktenkoffer\Ausgaben " & Jahr & ".xlsx"
Case "ROBERT1"
DateiName = "E:\EXCEL_MP\Ausgaben " & Jahr & ".xls"
Case "KAROMUE-NB"
'DateiName = "C:\Benutzer\karomue\EigeneDokumente\Aktenkoffer\Ausgaben " & Jahr & ".xls"
'DateiName = "C:\Users\karomue\Documents\Aktenkoffer\Ausgaben " & Jahr & ".xls"
'DateiName = "C:\Users\karomue\Eigene Dokumente\Aktenkoffer\Ausgaben " & Jahr & ".xls"
DateiName = "C:\Users\karomue\Documents\Aktenkoffer\Ausgaben " & Jahr & ".xls"
End Select
'If HolComputerName = "CHARLY-PC" Then
' DateiName = "D:\Neuer Aktenkoffer\Ausgaben " & Jahr & ".xls"
'*Else
' DateiName = "E:\EXCEL_MP\Ausgaben " & Jahr & ".xls"
'End If
'DateiName = "C:\Users\karomue\Documents\Aktenkoffer\Ausgaben " & Jahr & ".xls"
'ChDir "C:\WIN98\Desktop\Aktenkoffer"
'Workbooks.Open FileName:="C:\WIN98\Desktop\Aktenkoffer\Ausgaben2002.xls"
Workbooks.Open FileName:=DateiName
Select Case Left(Monat, 3)
Case "Jan", "jan", "1", "1 ", "1 ", "01"
Monat = "Januar"
Case "Feb", "feb", "2", "2 ", "2 ", "02"
Monat = "Februar"
Case "Mar", "mar", "Mär", "mär", "3", "3 ", "3 ", "03"
Monat = "März"
Case "Apr", "apr", "4", "4 ", "4 ", "04"
Monat = "April"
Case "Mai", "mai", "5", "5 ", "5 ", "05"
Monat = "Mai"
Case "Jun", "jun", "6", "6 ", "6 ", "06"
Monat = "Juni"
Case "Jul", "jul", "7", "7 ", "7 ", "07"
Monat = "Juli"
Case "Aug", "aug", "8", "8 ", "8 ", "08"
Monat = "August"
Case "Sep", "sep", "9", "9 ", "9 ", "09"
Monat = "September"
Case "Okt", "okt", "10", "10 "
Monat = "Oktober"
Case "Nov", "nov", "11", "11 "
Monat = "November"
Case "Dez", "dez", "12", "12 "
Monat = "Dezember"
End Select
m = M1 + Monat + M2
AktuelleMappe = m
AktuellesFenster = Monat
Zuordng(1, 1) = "Arbeitsmittel"
Zuordng(2, 1) = "Computer"
Zuordng(3, 1) = "Unterhalt"
Zuordng(4, 1) = "Haus"
Zuordng(5, 1) = "Ben"
Zuordng(6, 1) = ""
Zuordng(7, 1) = "Kfz"
Zuordng(8, 1) = "Kleidung KR"
Zuordng(9, 1) = ""
Zuordng(10, 1) = "Privat"
Zuordng(11, 1) = ""
Zuordng(12, 1) = "WP"
Zuordng(13, 1) = "Telefon"
Zuordng(14, 1) = "Versicherung"
Zuordng(15, 1) = "Einnahmen"
Zuordng(16, 1) = "Ausgaben"
Windows("Ausgaben " + Jahr + ".xls").Activate
Worksheets(AktuellesFenster).Activate
For i = 1 To 300
Cells(i, 6).Select
If ActiveCell.Value = "Kontrollwert " Then Exit For
Next i
VerticalJahr = i
For i = 2 To 16
LeereGruppen i 'überspringt leere Gruppen
For j = 1 To VerticalJahr
Cells(j, 1).Select
If ActiveCell.Value = Zuordng(i, 1) Then Exit For
EndPosJahrMonat(i - 1 - Korr, 1) = j - 1
Next j
Next i
For i = 2 To 16
LeereGruppen i 'überspringt leere Gruppen
If EndPosJahrMonat(i, 1) <> 0 Then
LenJahrMonat(i, 1) = EndPosJahrMonat(i, 1) - EndPosJahrMonat(i - 1 - Korr, 1) - 2
End If
Next i
LenJahrMonat(1, 1) = EndPosJahrMonat(1, 1) - 4
'Windows(AktuelleMappe).Activate
ActiveWorkbook.Activate
Cells.Select 'selektiert ganzes Blatt
Cells.EntireRow.AutoFit 'optimiert Spaltenbreite
Cells.EntireColumn.AutoFit 'optimiert Zeilenhöhe
For i = 1 To 300
Cells(i, 6).Select
If ActiveCell.Value = "BETRAG Gesamtsumme Summe:" Then Exit For
Next i
Vertical = i
For jj = 1 To 15
kk = 0
For ii = 1 To Vertical
Cells(ii, 2).Select
If Cells(ii, 2).Value = jj Then
For kk = 0 To Vertical
If Cells(ii + kk, 2).Value <> jj Then Exit For
EndPosJahrMonat(jj, 2) = ii + kk
Next kk
ii = ii + kk
End If
Next ii
LenJahrMonat(jj, 2) = kk
Next jj
Windows("Ausgaben " + Jahr + ".xls").Activate
Worksheets(AktuellesFenster).Activate
For i = 15 To 2 Step -1
Diff = 0
'If i = 12 Then i = i - 1 'überspringt leere Gruppen --> 12 wurde für WP verwendet, 11.9.2000
If i = 11 Then i = i - 1
If i = 9 Then i = i - 1
If i = 6 Then i = i - 1
'If i = 5 Then i = i - 1
If LenJahrMonat(i, 1) <= LenJahrMonat(i, 2) Then
Diff = LenJahrMonat(i, 2) - LenJahrMonat(i, 1)
Range(Cells(EndPosJahrMonat(i, 1), 1), Cells(EndPosJahrMonat(i, 1) _
+ Diff, 20)).Select
Selection.EntireRow.Insert
VerticalJahr = VerticalJahr + Diff + 1 'Korrektur der Bearbeitungslänge in"AusgabenXXXX"
Else
If LenJahrMonat(i, 1) > LenJahrMonat(i, 2) + 1 And LenJahrMonat(i, 1) > 2 Then
Diff = LenJahrMonat(i, 1) - LenJahrMonat(i, 2) - 1
Range(Cells(EndPosJahrMonat(i, 1) - Diff, 1), Cells(EndPosJahrMonat(i, 1) - 1, 20)).Select
Selection.EntireRow.Delete
End If
End If
Next i
For i = 2 To 16
LeereGruppen i 'überspringt leere Gruppen
For j = 1 To VerticalJahr
Cells(j, 1).Select
If ActiveCell.Value = Zuordng(i, 1) Then Exit For
EndPosJahrMonat(i - 1 - Korr, 1) = j - 1
Next j
Next i
'Windows(AktuelleMappe).Activate
ActiveWorkbook.Activate
Cells(Vertical + 4, 1).Select
ActiveCell.FormulaR1C1 = "Gruppe"
Cells(Vertical + 4, 2).Select
ActiveCell.FormulaR1C1 = "GrupAnzJahr"
Cells(Vertical + 4, 3).Select
ActiveCell.FormulaR1C1 = "EndPosJahr"
Cells(Vertical + 4, 4).Select
ActiveCell.FormulaR1C1 = "GrupAnzMonat"
Cells(Vertical + 4, 5).Select
ActiveCell.FormulaR1C1 = "EndPosMonat"
Cells(Vertical + 20, 1).Select
ActiveCell.FormulaR1C1 = "BearbLgJahr"
Cells(Vertical + 20, 3).Value = VerticalJahr
For x = 1 To 15
Cells(Vertical + 4 + x, 1).Value = x
Cells(Vertical + 4 + x, 2).Value = LenJahrMonat(x, 1)
Cells(Vertical + 4 + x, 3).Value = EndPosJahrMonat(x, 1)
Cells(Vertical + 4 + x, 4).Value = LenJahrMonat(x, 2)
Cells(Vertical + 4 + x, 5).Value = EndPosJahrMonat(x, 2)
If Cells(Vertical + 4 + x, 2).Value <> Cells(Vertical + 4 + x, 4) Then
'Längenvergleich Gruppen Monat/Jahr
End If
Next x
Range(Cells(Vertical + 4, 1), Cells(Vertical + 25, 5)).Select
Schrift Schriftgroesse, Schriftart
For x = 1 To 15 'kopieren von Monat in Jahr
If LenJahrMonat(x, 2) > 0 Then
'Windows(AktuelleMappe).Activate
ActiveWorkbook.Activate
Range(Cells(EndPosJahrMonat(x, 2) - (LenJahrMonat(x, 2) - 1), 1), _
Cells(EndPosJahrMonat(x, 2), 11)).Select
Selection.Copy
Windows("Ausgaben " + Jahr + ".xls").Activate
Worksheets(AktuellesFenster).Activate
Cells(EndPosJahrMonat(x, 1) - LenJahrMonat(x, 2), 1).Select
ActiveSheet.Paste
End If
For i = 0 To LenJahrMonat(x, 2) - 1
Cells(EndPosJahrMonat(x, 1) - LenJahrMonat(x, 2) + i, 13).Value = _
Cells(EndPosJahrMonat(x, 1) - LenJahrMonat(x, 2) + i, 6).Value * 1.95583
a = Cells(EndPosJahrMonat(x, 1) - LenJahrMonat(x, 2) + i, 8).Value
Cells(EndPosJahrMonat(x, 1) - LenJahrMonat(x, 2) + i, 8).Value = ""
Cells(EndPosJahrMonat(x, 1) - LenJahrMonat(x, 2) + i, 12).Value = a
Next i
Next x
Windows.Arrange ArrangeStyle:=xlHorizontal
Windows("Ausgaben " + Jahr + ".xls").Activate
Columns("L:Q").Select
'Range("L70").Activate
Selection.NumberFormat = "0.00"
Cells.Select 'selektiert ganzes Blatt
Schrift Schriftgroesse, Schriftart
Cells.EntireRow.AutoFit 'optimiert Spaltenbreite
Cells.EntireColumn.AutoFit 'optimiert Zeilenhöhe
Range("C:C").Select
With Selection 'Ausrichtung rechtsbündig
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.ShrinkToFit = False
End With
Sheets(Jahr).Select
For i = 2 To 28
For j = 15 To 17
Cells(i, j).Select
If ActiveCell.Value >= 0 Then
With Selection.Interior
.ColorIndex = 4
.Pattern = xlSolid
Selection.Font.ColorIndex = 1
End With
Else
With Selection.Interior
.ColorIndex = 45
.Pattern = xlSolid
Selection.Font.ColorIndex = 2
End With
End If
Next j
Next i
Cells(1, 1).Select 'zeigt ganzes Fenster an
'Windows("Ausgaben 2002.xls").Activate
Reha (Anzeigejahr)
ActiveWorkbook.Save ' "Ausgaben<jjjj>" ist aktiv
Worksheets(AktuellesFenster).Activate
Range("G1").Select
Cells.Find(What:="Kontrollwert", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False).Activate
ActiveCell.Offset(0, 1).Activate
WertJahr = ActiveCell.Value
'Windows(AktuelleMappe).Activate
ActiveWorkbook.Activate
'*************************************************************************
a = ""
For i = 1 To 16
Windows("Ausgaben 2015.xls").Activate
'vergl=ausgaben 2015.xls").Activate
Cells(2, i).Select
'vergl=
vergl = Zuordng(i, 1)
Windows("DatumAbfrageAusgabenMärz2015.xls").Activate
For j = 1 To 500
Cells(j, 1).Select
If Cells(j, 1).Value = vergl Then
Windows("Ausgaben 2015.xls").Activate
For k = 1 To 300
Cells(k, 1).Select
If Cells(k, 1).Value = vergl Then
'Column(j + 1, 10).Select
Windows("DatumAbfrageAusgabenMärz2015.xls").Activate
Cells(k, 3).Select
For l = 1 To 30
If Cells(j + l, 3).Value <> "" Then
Cells(j + l, 3).Select
'zaehl = j + l
'a = Right(Cells(j + l, 3), 5)
'If a = "" Then
'If Cells(j + l, 3).Value = " " Then
'If Cells(j + l, 3).Value = False Then
'If Cells(j + l, 3).Formula = " " Then
'If Range(Cells(j + 1, 3)).Value = "" Then
'Cells(1, 3).End(xlDown).Offset(1, 0)
'If Range("d65536").End(xlUp).Offset(1, 0).Value Then
'If (Cells(j + l, 3).Value) Is Null Then
'If istleer(j + l, 3) Then
lRow = Range(Cells(j + 1, 3), Cells(Rows.Count, 1)).Find(What:="").Row
MsgBox "1." & lRow
Stop
'End If
a = ""
zaehl = j + l
Cells(zaehl, 3).Select
'Rows("3:9").Select
End If
Next l
Stop
End If
Next k
Stop
End If
Next j
' For j = 1 To 500
' If Cells(1, j).Value = vegl Then
Windows("DatumAbfrageAusgabenMärz2015.xls").Activate
'Next j
Next i
'Range("G1").Select
' Cells.Find(What:="BETRAG Gesamtsumme Summe:", After:=ActiveCell, LookIn:=xlFormulas, _
' LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
' MatchCase:=False).Activate
' ActiveCell.Offset(0, 1).Activate
' WertMonat = ActiveCell.Value
' If WertJahr = WertMonat Then
' MsgBox ("Auswertung o.K.")
' Else
' MsgBox ("Fehler")
' End If
'Windows("Ausgaben 2004.xls").Activate
'ActiveWorkbook.SaveAs FileName:= _
' "C:\Dokumente und Einstellungen\Charly.KAROMUE\EigeneDateien\Ausgaben 2004.xls" _
' , FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
' ReadOnlyRecommended:=False, CreateBackup:=False
End Sub
So. Zufrieden?
|