Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1264to1268
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Daten in anderes Blatt übernehmen VBA

Daten in anderes Blatt übernehmen VBA
Claudia
Hallo an alle zusammen,
ich habe in einer Datei, im Tabellenblatt PLANER dort in Spalte C ab Zeile 7 Kurzzeichen stehen. Die Kurzzeichen stehen für Mitarbeitername. In dieser Tabelle wird für den jeweiligen Mitarbeiter/in
- In Spalte E der Beginn einer Tätigkeit
- In Spalte G die Dauer der Tätigkeit
- In Spalte H das Ende einer Tätigkeit
eingetragen bzw. errechnet.
https://www.herber.de/bbs/user/80518.xlsx
Nun möchte ich gerne in einem neuen Tabellenblatt „MITARBEITER“ die Zeitbelastung, sich ergebend aus Spalte G, der am Projekt beteiligten Personen erfassen, am besten per VBA da sich aus dem Blatt PLANER ständig Änderungen ergeben können. Auch können neue Namen/Kurzzeichen verändert werden.
Wer kann mir bitte helfen.
Vielen Dank Gruß Claudia
AW: Daten in anderes Blatt übernehmen VBA
11.06.2012 14:23:31
Heiko
Hallo Claudia,
Lösungsvorschlag:

Function zeitbelastung(kürzel As String) As Single
Dim rngPlaner As Range
Dim wsPlaner As Worksheet
Dim summezeit As Single
Set wsPlaner = Worksheets("PLANER")
For Each rngPlaner In wsPlaner.UsedRange
If rngPlaner.Cells(rngPlaner.Row, 3).Value = kürzel Then _
summezeit = summezeit + CSng(rngPlaner.Cells(rngPlaner.Row, 7).Value)
Next rngPlaner
zeitbelastung = summezeit
End Function
Anwendung:
Im Blatt Mitarbeiter Zelle C4 als Formel eingeben: =zeitbelastung(A4). Bei den anderen Mitarbeitern entsprechend.
Setzt voraus, dass du die Kürzel und Klarnamen im Blatt Mitarbeiter definierst.
Grüße
Heiko
Anzeige
AW: Daten in anderes Blatt übernehmen VBA
11.06.2012 14:48:14
Claudia
Hallo Heiko,
das funktioniert schon sehr gut, vielen Dank dafür, aber kann man das ganze so erweitern, das ein Makro sich die Kürzel aus dem Blatt "PLANER" automatisch in das Blatt "MITARBEITER" holt, doppelte Kürzel löscht und die Funktion dann die entsprechende Zeitbelastung aktualisiert. Somit könnte man doch dann auch die Formel für C4 per VBA bis zum letzten Kürzel nach unten kopieren. Das habe ich wohl in meiner Frage unklar ausgedrückt.
Leider reichen meine geringen VBAKenntnissse dafür nicht aus. Ich habe den Thread deshalb noch einmal auf offen gestellt.
Danke Gruß Claudia
Anzeige
AW: Daten in anderes Blatt übernehmen VBA
11.06.2012 17:11:42
Claudia
Hallo Heiko,
vielen Dank, werds erst morgen in der Firma testen können.
Gruß Claudia
AW: Daten in anderes Blatt übernehmen VBA
11.06.2012 17:48:41
Claudia
Hallo Heiko,
eine Frage habe ich doch schon.
In meinem Beispiel wird im Tabellenblatt PLANER nur jede zweite Zeile beschrieben. Viele Kollegen schreiben aber in jeder Zeile bzw. manchmal bleibt eine oder zwei Zeilen frei und dann scheint das Makro nicht richtig zu funktionieren.
Kann man das anpassen?
Danke im Voraus Gruß Claudia
Anzeige
AW: Daten in anderes Blatt übernehmen VBA
12.06.2012 06:53:25
Heiko
Guten Morgen Claudia,
habe dein Problem nachvollziehen können. Anbei die korrigierte For ... Each- Schleife:

With wsPLaner
For Each rngPlaner In .Range("C:C")
If Len(.Cells(zeile, 3)) > 0 Then
leerzeile = 0
If InStr(1, kürzel, .Cells(zeile, 3)) = 0 Then
kürzel = kürzel & .Cells(zeile, 3) & ","
i = i + 1
End If
Else
leerzeile = leerzeile + 1
If leerzeile = MAXLEERZEILE Then Exit For
End If
zeile = zeile + 1
Next rngPlaner
End With

Ich habe eine Konstante MAXLEERZEILE eingefügt, deren Wert du verändern kannst, wenn deine User dazu neigen sollten auch mal mehr als fünf Leerzeilen einzufügen. (Aus welchem Grund auch immer).
Grüße
Heiko
Anzeige
AW: Daten in anderes Blatt übernehmen VBA
12.06.2012 07:32:57
Claudia
Hallo guten Morgen Heiko,
und wie muss MAXLEERZEILE deklariert werden? Stehe echt auf dem Schlauch?
Kannst Du nocheinmal kurz helfen?
Danke Gruß Claudia
AW: Daten in anderes Blatt übernehmen VBA
12.06.2012 07:44:39
Heiko
Im Teil der Variablendeklaration:

Dim wsPLaner As Worksheet
Dim wsMitarbeiter As Worksheet
Dim rngPlaner As Range
Dim kürzel As String
Dim arrKürzel() As String
Dim i, k As Integer
Dim zeile As Integer
Dim leerzeile As Byte
Const MAXLEERZEILE = 5
Grüße
Heiko
Vielen Dank Heiko o.T.
12.06.2012 08:08:41
Claudia

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige