Formatierung eines Feldes in Abhängigkeit des Werts

  • #41
Hallo Karl,

eigentlich wollte ich heute richtig arbeiten, aber diese Sache lenkt mich doch sehr ab.
Und während ich gebastelt habe, und die neue Datei abgestellt habe, sind da schon wieder Änderungen.

Deine Ausführungen werde ich mit nachher mal zur Brust nehmen. Im Moment bin ich wieder an einer stelle, wo ich nicht weiterkomme.

Ich möchte die Druckdinge zusammenlegen, und da ist auch so weit gelungen. Dadurch spare ich mir den Druck über drei Einzelbelege, aber im Bereich Druck 2x Test müßten jetzt zwei Macros laufen, oder die müssten in einem zusammengefasst werden.

Der Bereich Zeile 188-500 wird schon so verändert, wie ich das wünsche. Der Bereich Zeile 28-117 aber noch nicht: Du kannst aber dem Code entnehmen, was ich dort gern hätte. :)
28-117 - Wenn Spalte C = 0 und D = 0 -> ausblenden
118-500 - Wenn WG <2000000 (=2stellige Warengruppen) dann ausblenden

Das wird noch eine drittes Macro oder ein 3. Befehl mit reinmüssen, und zwar ab Zeile 507 soll alles ausgeblendet werden, was in Menge =0 (oder leer) ist.
 
  • #42
Hallo Wolfgang,

Mache eine Zwischenspeicherung deiner Datei.
Wenn du die Bereichsnamen schon vergeben hast, kannst du die beiden Formeln in Auswertung anpassen und nach Unten kopieren.
Anschließend eine Kopie zum Download bereitstellen, dann kann ich Sie mir einmal ansehen.
 
  • #43
Hallo Karl,

ich habe noch nichts aus Deinem letzten Beitrag geändert. Ich war so in die Druckanpassungen vertieft. :)
Zudem kommen gleich meine Lagerleute, um für den Internenthandel zu packen: die brauchen Packlisten, DHL- und DPD-Aufkleber und Versandlisten. Da muss ich jetzt ran.

Die Excel-Tabelle habe ich gerade neu abgestellt.
 
  • #44
  • #45
Hallo Wolfgang,

hoffe ich habe alles Richtig Verstanden!

Kleine Änderung 118 bis 500 löschen wenn WG kleiner als 7 Stellig, ist das OK?
Oder sollen Zusätzlich noch Nullwerte abgefangen werden?
Dann kannst du mit And die Zeile erweitern.

Prüfen und testen!

Code:
Private Sub Worksheet_Activate()
 Dim Wiederholungen As Long
 On Error GoTo Fehler
 Application.ScreenUpdating = False-> BildschirmAktualisierung AUS
' *********************
  For Wiederholungen = 28 To 117-> Bis Zeile 117 prüfen
   If Cells(Wiederholungen, 3) = 0 And Cells(Wiederholungen, 4) = 0 Then
   Rows(Wiederholungen).EntireRow.Hidden = True
  Else
   Rows(Wiederholungen).EntireRow.Hidden = False
  End If
 Next
' *********************
  For Wiederholungen = 118 To 500-> ab Zeile 188 bis Zeile 500 prüfen
   If Len(Cells(Wiederholungen, 2)) < 7 Then
   Rows(Wiederholungen).EntireRow.Hidden = True
  Else
   Rows(Wiederholungen).EntireRow.Hidden = False
  End If
 Next
' *********************
  For Wiederholungen = 507 To Range(A65536).End(xlUp).Row-> Bis letzte Belegte Zelle in Spalte A Prüfen
   If Cells(Wiederholungen, 1) = 0 Then
   Rows(Wiederholungen).EntireRow.Hidden = True
  Else
   Rows(Wiederholungen).EntireRow.Hidden = False
  End If
 Next
' *********************
  Application.ScreenUpdating = True-> BildschirmAktualisierung EIN
 Exit Sub
Fehler:
 Application.ScreenUpdating = True-> BildschirmAktualisierung EIN
 MsgBox Es ist ein Fehler aufgetreten!
End Sub
 
  • #46
Hall Wolfgang,

jetzt die verkürzte Version des Makros!

Einfach mal testen.

Code:
Private Sub Worksheet_Activate()
 Dim Wiederholungen As Long
 
 On Error GoTo Fehler
 
 Application.ScreenUpdating = False-> BildschirmAktualisierung AUS
  
 For Wiederholungen = 28 To Range(A65536).End(xlUp).Row-> Bis letzte Belegte Zelle in Spalte A Prüfen
  If Wiederholungen >= 28 And Wiederholungen <= 117 And Cells(Wiederholungen, 3) = 0 And Cells(Wiederholungen, 4) = 0 _
   Or Wiederholungen >= 118 And Wiederholungen <= 500 And Len(Cells(Wiederholungen, 2)) < 7 _
   Or Wiederholungen >= 507 And Cells(Wiederholungen, 1) = 0 Then
   Rows(Wiederholungen).EntireRow.Hidden = True
   Else
   Rows(Wiederholungen).EntireRow.Hidden = False
  End If
 Next
  
  Application.ScreenUpdating = True-> BildschirmAktualisierung EIN
 
 Exit Sub

Fehler:
 Application.ScreenUpdating = True-> BildschirmAktualisierung EIN
 MsgBox Es ist ein Fehler aufgetreten!
End Sub
 
  • #47
Hallo Karl,

hat was gedauert. Der Urlaub kommt immer näher, und damit auch die unbedingt noch zu erledigenden Sachen, bis am Ende noch 3 Tage zur Verfügung stehen, aber och Arbeit für 6 Tage. :)

Ich habe das geänderte Macro mal eingesetzt. Wenn ich jetzt im Formular eine Buchung einer WG ergänze, dann kommt die beim Druck nicht an... erst wenn ich mir den Code anzeigen lasse, das ohne Änderung wieder beende und erneut auf Druck gehe.

Mit dem langen Makro ging es... das werde ich jetzt mal wieder einsetzen.
 
  • #48
Hallo Wolfgang,

habe beide Makros Abwechselnd gestartet und einmal mit alle Zeilen einblenden dazwischen, habe keinen Unterschied entdeckt.
Beachte einmal die Zeilennummern der nicht angezeigten Artikel und die WG, 2 oder 7 Zeichen, kann mir das im Moment nicht erklären.

Tritt dieses Verhalten auch in der bereit gestellten Testdatei auf?

Im Blatt Test 2x Druck bis Zeile 500 werden gleiche WG Summiert, ab Zeile 507 einzeln angezeigt.
 
  • #49
Moin, moin, Karl,

Also eine Datei mit 2x Druck habe ich nicht mehr:
allerdings liegt die aktuelle Datei weiterhin auf
http://www.minze-d.de/labu.xlsm

Ich habe dort das Alte Makro eingebaut.

Wenn ich das letzte, gepostete Makro nehme, tritt/trat bei mir folgender Umstand ein:
Ich ergänze in Formular eine Zeile mit der Buchung 1x WG65 EK 50,- VK 100,- und wechsle auf Druck:
diese neue Zeile taucht nicht im unteren Teil auf, wo die Buchungen zur Kontrolle auftauchen sollten.
 
  • #50
Hallo Wolfgang,

hattest Recht, war mein Fehler :|, da die letzte eingefügte Zeile noch ausgeblendet war, wurde sie als Maximalzeile nicht erkannt,
deshalb habe ich folgende Zeile eingefügt:

Code:
Cells.EntireRow.Hidden = False-> Zuerst alle Zeilen einblenden

und folgende Zeilen gelöscht, da bereits Alle Zeilen eingeblendet sind, werden sie nicht mehr Benötigt.

Code:
   Else
   Rows(Wiederholungen).EntireRow.Hidden = False

Jetzt werden erst alle Zeilen eingeblendet, die Maximal Datenzeile übernommen, falls eine Bedingung zutrifft, wird die Zeile wieder ausgeblendet.

Jetzt sollte das Makro wie gewünscht laufen! :1

Code:
Private Sub Worksheet_Activate()
 Dim Wiederholungen As Long
 
  On Error GoTo Fehler
 
  Application.ScreenUpdating = False-> BildschirmAktualisierung AUS
  Cells.EntireRow.Hidden = False-> Zuerst alle Zeilen einblenden
  
 For Wiederholungen = 28 To Range(A65536).End(xlUp).Row-> Bis letzte Belegte Zelle in Spalte A Prüfen
  If Wiederholungen >= 28 And Wiederholungen <= 117 And Cells(Wiederholungen, 3) = 0 And Cells(Wiederholungen, 4) = 0 _
   Or Wiederholungen >= 118 And Wiederholungen <= 500 And Len(Cells(Wiederholungen, 2)) < 7 _
   Or Wiederholungen >= 507 And Cells(Wiederholungen, 1) = 0 Then
   Rows(Wiederholungen).EntireRow.Hidden = True

  End If

 Next
  
  Application.ScreenUpdating = True-> BildschirmAktualisierung EIN
 
 Exit Sub

Fehler:
 Application.ScreenUpdating = True-> BildschirmAktualisierung EIN
 MsgBox Es ist ein Fehler aufgetreten!
End Sub
 
  • #51
Hallo Karl,

jetzt geht es wieder. :)
Vielen, vielen Dank für Deine liebe Unterstützung.

An dieser Stelle möchte (und muss) ich jetzt erst einmal einen cut machen: jetzt muss das Ding mal im realen Leben getestet werden, ob sich daraus noch andere Forderungen ergeben.

Da ich in Kürze in Urlaub fahre, fehlt mir auch die Zeit, das weiter zu vertiefen. Sicheri st da noch Potential verhanden, Eingabefehler abzufangen. Zum Beispiel könnte man doch sicher mit einer Allow-Liste arbeiten, die auf Formularseite bei der Eingabe abgeprüft wird. Das würde mögliche Fehler einschränken, wobei solche Fehler an einer anderen Stelle auch noch abgefangen werden.

Vielen Dank noch einmal für Deine Hilfe: ich glaube, ich bin nicht das letzte Mal hier, und in diesem Thread. :)
 
  • #52
Hallo Wolfgang,

dann wünsche ich Dir einen schönen und erholsamen Urlaub! :) :1
 
  • #53
Wir arbeiten jetzt doch schon einige Zeit mit dem Programm: wir können uns nicht vorstellen, mal ohne ausgekommen zu sein.

Vielen Dank auch jetzt im Nachhinein noch einmal für die tolle Unterstützung.
 
  • #54
Balu66 schrieb:
Wir arbeiten jetzt doch schon einige Zeit mit dem Programm: wir können uns nicht vorstellen, mal ohne ausgekommen zu sein.

Vielen Dank auch jetzt im Nachhinein noch einmal für die tolle Unterstützung.

Hallo Wolfgang,

schön zu Hören, dass meine Beiträge, bei der Lösung einiger Probleme Hilfreich waren und Danke für die Blumen. :froehlich1: :)
 
Thema:

Formatierung eines Feldes in Abhängigkeit des Werts

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.836
Beiträge
707.957
Mitglieder
51.488
Neuestes Mitglied
elkhse
Oben