Antworten

Achtung - während Sie das Thema gelesen haben, wurden 11 neue Beiträge geschrieben. Sie sollten das Thema erneut lesen.
Name:
E-Mail:
Betreff:
Symbol:

Max. Zeichen: 16384; Zeichen übrig: 16384
Verifizierung:

Nachfolgend aufgeführte Felder dienen dazu, Spammer an der Registrierung zu hindern.

Leider können in der heutigen Zeit einfache Bildabfragen häufig durch Spammer umgangen werden.
Wir verwenden deshalb eine Kombination mehrerer Verfahren, um Spammer fern zu halten.
Danke für ihr Verständnis.

Bitte löschen Sie den Inhalt im folgenden Feld:

Geben Sie die Zeichen aus dem Bild in Groß- oder Kleinschreibung ein
Anhören / Bild neu laden

Geben Sie die Zeichen aus dem Bild in Groß- oder Kleinschreibung ein:
Geben Sie den Namen der Tabellenkalkulation (Excel) von Microsoft ein:

Shortcuts: mit Alt+S Beitrag schreiben oder Alt+P für Vorschau


Zusammenfassung

Autor: Whiterabbit
« am: 2017-11-03 12:58:49 »

hier der zweite Anhang - ...neu1.xlsm.
Autor: Whiterabbit
« am: 2017-11-03 12:58:07 »

Hallo,

anbei zwei Versionen.

Version 1 (....neu1.xlsm):
Private Sub UserForm_Initialize()
...
With...Gehaltsreport... (nur Payroll)
End With
With...Planning... (nur Planning)
...
End Sub

Version 2 (....neu.xlsm):
Private Sub InitializePayroll()
Private Sub InitializePlanning()
(beide Initialisierungen komplett voneinander getrennt)

Beide Versionen funktionieren nicht --> keine Auswahlmöglichkeit bei Page 2 "Planning".

in beiden Versionen habe ich penibel darauf geachtet, dass alles identisch ist.
irgendetwas übersehe ich jedoch...und ich weiß nicht was.  :-\

erster Anhang = ...neu.xlsm
zweiter Anhang folgt gleich im Anschluss (beide Dateien zu groß für einen Upload)!


Vielen Dank & viele Grüße
Whiterabbit
Autor: maninweb
« am: 2017-11-03 11:52:10 »

Hallo,

also wenn Du Dich nicht mit der letzten Datei beim Hochladen vertan hast, ist immer noch folgender Code drin...

Code: Visual Basic
  1. '   Anlagen...
  2.    
  3.     With ThisWorkbook.Worksheets("TiRo_Gehaltsreport_Part1")
  4.     With ThisWorkbook.Worksheets("Planning")
  5.     :
  6.  

Das kann nicht klappen, denn .Cells(...) bezieht sich auf den With-Block. Deshalb, etwas aufgebohrter ...

Code: Visual Basic
  1. '   Alles was Payroll ist in diesen With-Block...
  2.    
  3.     With ThisWorkbook.Worksheets("TiRo_Gehaltsreport_Part1")
  4.          
  5. '     Filter zurücksetzen...
  6.      
  7.       ThisWorkbook.Worksheets("TiRo_Gehaltsreport_Part1") _
  8.      .ListObjects("Payroll").AutoFilter.ShowAllData
  9.    
  10. '     Anzahl...
  11.      
  12.       lngAnzahl = .Cells(Rows.Count, 1).End(xlUp).Row
  13.      
  14. '     Payroll...
  15.      
  16.       arrPayroll = .Range(.Cells(1, 1), .Cells(lngAnzahl, 18)).Value
  17.       arrPayrollHeads = .Range(.Cells(1, 1), .Cells(1, 18)).Value
  18.  
  19. '     Einzelspalten...
  20.      
  21.       arrClusters = .Range(.Cells(2, 17), .Cells(lngAnzahl, 17)).Value
  22.       arrCostCs = .Range(.Cells(2, 3), .Cells(lngAnzahl, 3)).Value
  23. '     :
  24. '     :
  25.      
  26. '     Sortieren...
  27.      
  28.       SortArrayFromRange arrClusters, 1, LBound(arrClusters, 1), UBound(arrClusters, 1)
  29.       SortArrayFromRange arrCostCs, 1, LBound(arrCostCs, 1), UBound(arrCostCs, 1)
  30. '     :
  31. '     :
  32.  
  33.     End With
  34.    
  35. '   Alles was Planning ist in diesen With-Block...
  36.    
  37.     With ThisWorkbook.Worksheets("Planning")
  38.      
  39. '     Filter zurücksetzen...
  40.      
  41.       ThisWorkbook.Worksheets("Planning") _
  42.      .ListObjects("Planning").AutoFilter.ShowAllData
  43.    
  44. '     Anzahl...
  45.      
  46.       lngAnzahl = .Cells(Rows.Count, 1).End(xlUp).Row
  47.  
  48. '     Planning...
  49.      
  50.       arrPlanning = .Range(.Cells(1, 1), .Cells(lngAnzahl, 16)).Value
  51.       arrPlanningHeads = .Range(.Cells(1, 1), .Cells(1, 16)).Value
  52.      
  53. '     Einzelspalten...
  54.      
  55. '     arr__PLanning_1 = .Range(.Cells(2, 17), .Cells(lngAnzahl, 17)).Value
  56. '     arr__PLanning_2 = .Range(.Cells(2, 3), .Cells(lngAnzahl, 3)).Value
  57. '     :
  58. '     :
  59.      
  60. '     Sortieren...
  61.      
  62. '     SortArrayFromRange arr__PLanning_1, 1, LBound(arr__PLanning_1, 1), UBound(arr__PLanning_1, 1)
  63. '     SortArrayFromRange arr__PLanning_2, 1, LBound(arr__PLanning_2, 1), UBound(arr__PLanning_2, 1)
  64. '     :
  65. '     :
  66.      
  67.     End With
  68.  

Der Code, der den With-Blocks folgt, musst Du entsprechend überprüfen. Wie gesagt, betrachte die zwei Seiten
im Multipage als unabhängige Einheiten. So, als würdest Du zwei UserForms programmieren, einmal für Payroll
und einmal für Planning. Nur dass eben halt jetzt nun beides in zwei Seiten einer Multipage ist.

Gruß
 
Autor: Whiterabbit
« am: 2017-11-02 19:10:43 »

Hallo maninweb,

eine letzte Frage habe ich noch...danach bin ich so gut wie fertig und Du hast Ruhe vor mir.  ;D
Ich habe alles so umgesetzt, wie Du es mir geschildert hast.
ListBoxen sind jetzt beide korrekt befüllt und die Filterung in Page 1 (Payroll) funktioniert wunderbar!
Page 2 (Planning) steht auch, jedoch funktioniert die Filterung nicht. Er zeigt nur als Auswahl "ALLE".
Arrays und objects sind alle hinterlegt.
Kann der Fehler evtl. hier liegen:
_____
Private Sub InitializePayroll() / Private Sub InitializePlanning()
...
'   Seite...   
    MultiPage1.Value = 0 (ist bei beiden identisch)
...
End Sub
_____

Wenn das funktioniert benötige ich keine weitere Hilfe für die Finalisierung!  8) ;D


Vielen Dank im Voraus & viele Grüße
Whiterabbit
Autor: maninweb
« am: 2017-10-31 10:46:42 »

Hallo,

das Projekt nimmt langsam eine Dimension an, wo es (für mich jedenfalls) zu aufwändig wird, dies im Rahmen eines
Forumsbeitrags zu betreuen.

Deshalb nur kurz, was mir aufgefallen ist. Generell ist es so, dass beide Listboxen unabhängig voneinander agieren
sollten und somit selbstständige Einheiten bilden. Deshalb ist der Code auch so zu behandeln. Aktuell hast Du z.B.
den Code gemischt, Beispiel:

Code: Visual Basic
  1. '   Anlagen...
  2.    
  3.     With ThisWorkbook.Worksheets("TiRo_Gehaltsreport_Part1")
  4.     With ThisWorkbook.Worksheets("Planning")
  5.     :
  6.  

Der Code innerhalb des With-Block berücksichtigt also nur die Tabelle "Planning". Die Struktur müsste wie folgt
aussehen:

Code: Visual Basic
  1. '   Anlagen...
  2.    
  3.     With ThisWorkbook.Worksheets("TiRo_Gehaltsreport_Part1")
  4.    
  5. '   Hier der Code für TiRo_Gehaltsreport_Part1
  6.    
  7.     End With
  8.  
  9.     With ThisWorkbook.Worksheets("Planning")
  10.    
  11. '   Hier der Code für Planning
  12.    
  13.     End With
  14.  

Das Separieren gilt auch für das Füllen der Collections usw. Du könntest z.B. zwei Prozeduren machen und
diese dann in UserForm_Initialize() aufrufen. Beispiel:

Code: Visual Basic
  1.   Private Sub InitializePayroll()
  2.  
  3. '   Enthält den Code von vorheriger Version für UserForm_Initialize
  4. '   und zwar nur für die erste Seite im Multipage.
  5.  
  6.   End Sub
  7.  
  8.   Private Sub InitializePlanning()
  9.  
  10. '   Enthält einen für Planning angepassten Code von Payroll
  11. '   und zwar auch mit eigenen Variablen
  12.  
  13.   End Sub
  14.  
  15.   Private Sub UserForm_Initialize()
  16.    
  17.     InitializePayroll
  18.     InitializePlanning
  19.    
  20.   End Sub
  21.  
Der Code hier oben ist nur ein Beispiel. Insgesamt: trenne Deinen Code in kleinere Einheiten, sodass
Du besser den Überblick behalten kannst.

Gruß
Autor: Whiterabbit
« am: 2017-10-30 21:11:27 »

Hallo zusammen,

anbei mein Versuch die zweite Listbox zu befüllen...Hat natürlich nicht so geklappt, wie gewünscht.
Ich habe die zweite Listbox in der Userform befüllen können, jedoch sind die Daten der ersten ListBox mit den Daten der zweiten Listbox vermischt. die zweite ListBox stimmt komischerweise...ich sehe langsam in dem VBA nicht mehr durch...
Des Weiteren ist in den ComboBoxen teilweise keine Auswahl außer "Alle" möglich.

Ich tippe, dass ich Verweise vergesen oder falsch gesetzt habe.

So soll die Verknüpfung eigentlich aussehen:
Listbox 1 = ListBoxLOGA (Daten aus Reiter "TiRo_Gehaltsreport_Part1")
- 1. CB = Cluster(s)
- 2. CB = Department(s)
- 3. CB = CostC(s)
- 4. CB = Employee(s)
- 5. CB = Job(s)
Listbox 2 = ListBoxPlanning (Daten aus Reiter "Planning")
- 1. CB = BP(s)
- 2. CB = CostCenter(s)
- 3. CB = Nam1(s)
- 4. CB = Role(s)

Wäre klasse, wenn mir hier wieder jemand helfen könnte...maninweb :-)

Noch eine Sache:
--> Erhöhung der Breite der ListBox-Spalten
--> wo / wie kann ich das einbauen?
-->(die Anzahl der Spalten wird sich nämlich noch reduzieren)


Vielen Dank im Voraus & viele Grüße
Whiterabbit
Autor: maninweb
« am: 2017-10-02 16:43:55 »

Hallo,

Du hast vergessen, die Prozedur als solches wieder einzubinden. Siehe meine letzte Datei hier aus dem Thread.
Folgendes (gekürzt) muss in das Modul wieder rein...

Code: Visual Basic
  1. Private Function SortArrayFromRange(ByRef Data, Column As Long, Lower, Upper) As Long
  2. :
  3. :

Ausserdem hast Du den Code für's Einlesen in die Comboboxen so verändert, dass es dann egal wird,
ob die Arrays sortiert werden oder nicht. Denn nun verwendest Du gar nicht mehr die sortieren Arrays.
D.h. das musst Du wiederherstellen.

Dann noch als Tipp: wenn die Daten in der Ausgangstabelle #NV's beinhalten, kann das Array nicht
korrekt eingelesen werden und die Sortering schlägt fehl. Hier musst Du dann Deine Formeln z.B.
mit WENNFEHLER kapseln. Beispiel:

Code: Excel
  1. =WENNFEHLER(SVERWEIS([@CostC];Hilfstabelle!$A$2:$C$200;3;FALSCH);"")

Gruß
Autor: Whiterabbit
« am: 2017-10-02 13:54:34 »

Hallo maninweb, hallo User,

anbei der "Versuch" die Sortierung, wie zuvor in Deiner Datei, wieder einzubinden.
...Fehlermeldung bei "SortArrayFromRange" = "Fehler beim Kompilieren: Sub oder Function nicht definiert"...
Ich kann nicht finden, was ich vergessen- oder falsch gemacht habe. Ich habe meine und Deine Datei nebeneinander gelegt und sehe keine abweichung.

Morgen mache ich mich an die zweite MultiPage und stelle Dir das Ergebnis rein...ist echt hart...eine eigene Welt dieses VBA!  :-\


Danke & Gruß
Whiterabbit
Autor: maninweb
« am: 2017-10-01 13:10:56 »

Hallo,

naja, Sortieren geht deshalb nicht mehr, weil Du die Prozedur rausgenommen hast. Zu der Druckanpassung müsste ich selbst recherchieren,
weshalb ich so erstmal nichts dazu sagen kann. Persönlich drucke ich nie UserFormen aus. Was die zweite Seite betrifft, nö, da gibt's eigentlich
nichts konfigurationsmäßiges zu beachten, ausser dass die Steuelemente dann anders als auf der ersten Seite heißen müssen und Du gegebenfalls
auch die Füllprozedur duplizieren müsstes, wenn beide Seiten völlig unabhängig voneinander sein müssen.

Kannst ja mal Deinen Versuch hier reinstellen, dann können wir mal gucken ...

Gruß

Autor: Whiterabbit
« am: 2017-09-27 20:59:01 »

Hallo maninweb, hallo User,

anbei findest Du meine aktuelle Datei.
Die erste Page der UserForm ist quasi fertig. Hier habe ich nur noch zwei Fragen:
- Sortierung der ComboBoxen funktioniert nicht mehr, woran könnte das liegen?
- ich habe herausgefunden, wie man über Comboboxen einen Druck erzeugt...jedoch ist meine derzeitige Einstellung etwas dürftig!
  hättest Du eine Idee, wie ich eine automatische Druckanpassung an ein A4-Blatt vornehmen kann (Querformat - Landscape)?

Die zweite Page soll ähnlich wie die erste aussehen.
Hier habe ich versucht die Daten (VBA) der ersten Page zu addaptieren...jedoch ohne Erfolg...ich habe sie wieder gelöscht, da eine Fehlermeldung nach der anderen kam.  ::)
- Muss ich hier eine strickte Trennung zu den bereits bestehenden VBA-Konfigurationen vornehmen und evtl. die zweite Page über ein Modul oder ähnliches konfigurieren?

Danke & Gruß
Whiterabbit
Autor: Whiterabbit
« am: 2017-09-25 11:15:26 »

Hallo maninweb,

Bitte entschuldige meine sehr späte Rückmeldung...!
Nach meiner hochzeit und meinen Flitterwochen konnte ich erst jetzt wieder online gehen.
Also noch einmal vielen, vielen Dank für Deine Hilfe!!!  8)

ich habe mir jetzt aus der Grunddatei eine sehr flexible und aufschlussreiche Datenbank gebastelt.
Aber, wie bereits erwähnt, habe ich noch kleine Features, die ich benötige.

Folgende Fragen zu weiteren Features meinerseits, die ich erst probieren möchte, wenn du mir sagst, dass es funktionieren würde:
- ist es möglich in der Userform unter dem Reiter "Payroll" ein Suchfeld zu integrieren, mit dem man zusätzlich nach einzelnen Namen oder Begriffen in der Grunddatei suchen und filtern kann?
(Also ein pendant zu den bereits integrierten ComboBoxen)
- ist es möglich eine weitere weitere ListBox mit entsprechenden Filterungen unter dem Reiter "Planning" einzubauen?
(analog zu dem Reiter "Payroll")

Je nachdem, wie Du meine Fragen beantwortest, würde ich mich selbst daran probieren und Dir meine, hoffentlich funktionierenden Ergebnisse, zum drüberschauen überreischen. :-)


Vielen Dank im Voraus & viele Grüße
WR
Autor: Whiterabbit
« am: 2017-08-15 11:58:43 »

Zunächst vielen, vielen Dank!

ich werde es mir heute oder morgen Abend genauer anschauen und gucken, was ich noch so nettes einbauen kann.
Sieht auf jeden Fall Klasse aus!  8)

Ich melde mich schnellst möglich zurück!


Viele Grüße
Whiterabbit
Autor: maninweb
« am: 2017-08-15 11:23:39 »

Hallo,

ich habe Dir mal ein paar Änderungen eingebaut. Sortieren ist nicht ganz trivial, weil man dann die Combobox-Elemente
als Einzel-Arrays einlesen muss. Sortierung basiert auf QuickSort (Suche mal im Netz danach). Filter zurücksetzen würde
ich eher beim Öffnen der UserForm sehen, aber das kannst Du auch ändern: in DieseArbeitsmappe die Kommentierung
aufheben und bei der UserForm denselben Code wieder rausnehmen. Textboxen aktualisieren: einfach in die Funktion
zum Filtern setzen. Image-Dateien: da warste schon auf den richtigen Weg: aber auch hier einfach in den Filter und
bei der Initialisierung eingebaut.

Gruß
Autor: Whiterabbit
« am: 2017-08-14 18:43:24 »

Aloha,

anbei eine musterdatei...hat etwas gedauert, da die hoch zu ladende Datei nicht >=1MB sein durfte!
(ich hoffe, dass ich nicht zu viel herausgelöscht / umgemodelt habe)  ::) ;D

Meine Wünsche, die ich aktuell nicht realisieren kann (da ich bei dem Wirr-War nicht mehr durchsehe und nicht weiß, wo ich die VBA-Anweisungen hinterlegen muss):
- Sortierung der Comboboxen (alphabetisch)
- Beim Öffnen der Datei immer alle Filter zurücksetzen
- Textboxen, die mit Werten per "Refresh-Button" aktualisiert werden - automatisch bei Auswahl der ComboBoxen aktualisieren
(hier weiß ich, dass der direkte Verweis auf eine Zelle (Row-Source) die Formel der Zelle löscht und bei erneutem Öffnen nur noch den Wert anzeigt)
- Image-Dateien, die aus dem Reiter "KPI´s" gezogen werden automatisch aktualisieren
(hier habe ich mich der "Kamerafunktion"-Funktion bedient und weiß nicht, wie ich hier eine "Echtzeit-Aktualisierung" und das einbinden mehrerer Images vornehmen kann (ca. 5 Images))

Ich habe mein möglichstes versucht...aber derzeit komme ich nicht weiter.  :-\

Vielen Dank für Anregungen oder Hilfen!


Viele Grüße
Whiterabbit
Autor: maninweb
« am: 2017-08-12 09:29:54 »

Hallo,

ohne den Code, den Du hast, wird's schwierig - bzw. wie hast Du denn das Erstladen realisiert?
Vielleicht nicht doch eine Datei ohne Daten hochladen?

Gruß
Autor: Whiterabbit
« am: 2017-08-11 22:58:59 »

Guten Abend,

also es funktioniert alles wunderbar!
maninweb: "VBA.Trim" hat mein Excel überzeugt!  ;)

Jetzt habe ich jedoch bereits das nächste Problem...
Die Datei kann ich leider aktuell nicht mehr hochladen (zu viele Daten; Datenschutz), jedoch versuche ich mein Anliegen so gut wie möglich zu erläutern.

Ich habe es geschafft  8) per "Kamera" ein dynamisches, cooles Tacho-Diagramm in meine UserForm als Image einzubinden.
Sobald ich die Daten in der UserForm per Auswahl der ComboBoxen filtere ändert sich im Hintergrund das Diagramm und auch das "gif", dass ich per "Kamera" eingefügt habe und das auf dem Tabellenblatt liegt...nur leider aktualisiert sich das Image in der Userform nicht...
Ich muss immer erst die UserForm neu laden, damit sich das Image aktualisiert.

Ich habe alles (mir mögliche und bekannte) im VBA versucht:
- UserForm aktualisieren
- Image neu reinladen

Existiert eine Möglichkeit Images in Echtzeit oder per Button zu aktualisieren?
Weiß jemand wie der Pfadname eines per Kamera produzierten Duplikates lautet?
...ich habe es leider nicht per Button hinbekommen.


Vielen Dank im Voraus & viele Grüße
Whiterabbit

P.S.: Wenn diese Datei irgendwann fertig ist, werde ich durch euch Profies ein ordentliches Wissen aufgebaut haben...Danke dafür!  ;)

An- und Abmeldung

 
 

Tools

Werbung