Clever-Excel-Forum

Normale Version: VBA-Wunsch zu Weihnachten
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo liebe Gemeinde,

ich hätte gerne ein VBA erstellt, aber ich habe keine Ahnung wie.
Ich hätte bei der angehängten Datei, bei dem Arbeitsblatt Auswertung 2 (Auswertung wäre auch OK) eine Abfrage, in der man das Projekt eingibt und dann ausgegeben wird, welche Mitarbeiter daran arbeiten (X in der Matrix). Die X'e sind allerdings flexibel.......


Hat jemand ne Lösung, ne Idee, kann mich anleiten?
wie man das Formular erstellt weiss ich, nur nicht den Abfragecode, wenn Projekt A, dann......


Danke  einen schönen Tag und frohe Weihnachten

eure Twobbi
Hallo Twobbi,

muss es denn unbedingt VBA sein? Ohne VBA würde ich als Lösungsansatz auf eine Pivot-Tabelle tippen.
Hallo schauan,

nein müssen muss gar nix ^^ Ich würde gerne nur mal so was mit VBA machen, etwas dazu lernen.... An Weihnachten darf man sich doch was wünschen ^^

Würde Pivot mit so einer Matrix, wo sich die X'e auch ständig ändern überhaupt funktionieren? naja hab zwischen den Jahren reichlich Zeit zu probieren ^^
Hi,

(23.12.2015, 10:16)twobbelix schrieb: [ -> ]Würde Pivot mit so einer Matrix, wo sich die X'e auch ständig ändern überhaupt funktionieren?  naja hab zwischen den Jahren reichlich Zeit zu probieren ^^

ja, Du kannst per Makro erreichen, daß, wenn sich innerhalb eines definierten Bereiches etwas ändert, dann automagisch (das Wort verwende ich auch sehr gern) auch die Pivot aktualisiert.
Ich suche mal nach dem Makro.

Schau mal hier, da gibt es erst mal 3 Methoden:
http://www.clever-excel-forum.de/Thread-...n?pid=2643&highlight=pivot+aktualisieren+makro#pid2643

Und hier das Makro zum automagischen Aktualisieren bei Änderungen im Tabellenbereich A2 bis K12:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim Bereich1 As Range
  Dim pt As PivotTable
 
  Set Bereich1 = Range("A2:K12")
  If Not Intersect(Target, Bereich1) Is Nothing Then
     For Each pt In ActiveSheet.PivotTables
        pt.RefreshTable
     Next pt
     
  End If
End Sub

[attachment=3675]
Hallo Rabe,

sieht ja soweit ganz gut aus, aber bei dann über 50 Mitarbeitern wird das ganze dann auch etwas unübersichtlich........

@Rabe und @all,


ich habe das so mit Pivot gelöst (siehe Anhang Tabelle 31).- Auch nicht die feine art, abner immerhin. Da kann man sich dann bei dem bestimmten Projekt nur das X filtern lassen und ´die entsprechenden Mitarbeiter werden unten dann angezeigt......
Aber das finde ich mit den umfiltern immer etwas umständlich und sowieso bei an die Hundert Projekte.......

schönen Tag
eure twobbi

p.s. VBa will keiner? ^^
(29.12.2015, 15:21)twobbelix schrieb: [ -> ]p.s.  VBa will keiner? ^^

Hallo twobbelix,
Weihnachtswünsche soll man nicht enttäuschen... (auch wenn es vielleicht erst nach Neujahr wird)
Ein Makro wäre nicht problematisch, was soll denn entstehen?
- eine neue Tabelle oder Datei, in der Projekt und Mitarbeiter stehen?
- ein einfaches Anzeigefenster mit diesen Angaben und OK?
- eine Variante, die die obigen 3 Möglichkeiten zur Auswahl zulässt?
- oder was?
Gruß der AlteDresdner
hey AlterDresdener,

Weihnachten ist leider schon vorbei ^^   ausserdem ist es viel schöner, wenn man selber sich einen Wunsch erfüllen kann :)  :18:   OK, bisserl Hilfe hatte ich in der Firma......
Aber wie war dies?  Der Gedanke zählt. und danke, dass du helfen wolltest, bzw. mir den Wunsch erfüllen wolltest ;)  :17:


Mittlerweile habe ich selber was getüftelt.

Bei einem Doppelklick auf das Projekt wird jetzt angezeigt, welche Mitarbeiter daran arbeiten. Wers ausprobieren möchte ^^:  IM Anhang beim Arbeitsblatt Auswertung 2 einen Doppelklich auf ein Projekt machen.

Der dazugehörige Code sieht folgendermassen aus (für denjenigen den es interessiert):


Option Explicit

Public Function MitarbeiterAuswertung(ByVal Zeile As Long)

Dim i As Long
Dim LastCol As Long

LastCol = Me.UsedRange.Columns.Count

Dim Mitarbeiterliste As String
Mitarbeiterliste = "Mitarbeiter auf Projekt " & Me.Cells(Zeile, 1) & ":" & vbNewLine & vbNewLine


For i = 2 To LastCol
   If UCase(Me.Cells(Zeile, i)) = "X" Then
       Mitarbeiterliste = Mitarbeiterliste & Me.Cells(2, i) & vbNewLine
   End If
Next i

MsgBox Mitarbeiterliste, vbInformation + vbOKOnly, "Mitarbeiterauswertung"

End Function

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
   If Target.Column = 1 Then
       Call MitarbeiterAuswertung(Target.Row)
       Cancel = True
   End If
End Sub

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
   If Target.Column = 1 Then
       Call MitarbeiterAuswertung(Target.Row)
       Cancel = True
   End If
End Sub



Wünsche Euch allen einen guten Rutsch und einen guten Start ins neue Jahr

Eure Twobbi