Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
436to440
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
436to440
436to440
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Aus Zeiträumen mit VBA Terminplan erstellen

Aus Zeiträumen mit VBA Terminplan erstellen
06.06.2004 08:27:43
Fritz
Hallo VBA-Spezialisten,
wer kann mir Hilfe anbieten, bei der Umsetzung folgender Aufgabe:
Die Tabelle "Daten" ist wie folgt aufgebaut
beispielhafter Auszug aus Tabelle "Daten"
A B C D
4 Block Beginn Ende Tage
5 1 28.01.2004 02.02.2005 6
6 2 14.05.2004 27.05.2005 14
7 3
...
16 12
Also beginnend mit B5 können(!)im Bereich B5:B16 bis zu 12 Terminbereiche
in der Spalte B der jeweilige Beginn und in der gleichen Zeile in Spalte C das Ende des einzelnen Terminbereichs (Terminblock)angegeben sein.
Ich möchte nun - abhängig von den Einträgen im genannten Bereich - in einer zweiten Tabelle "Plan" einen Terminplan erstellen, der ab Zeile 5 in Spalte A
fortlaufend die Nr. des Terminblocks und in der Spalte C (!) fortlaufend das Datum der jeweiligen Tage einträgt.
Beispielhafter Auszug aus Tabelle "Plan"
A B C
4 BlockNr.
5 1 28.01.2004
6 1 29.01.2004
7 1 30.01.2004
8 1 31.01.2004
9 1 01.02.2004
10 1 02.02.2004
11 2 14.05.2004
12 2 15.05.2004
usw.
Da die Umsetzung wohl am einfachsten mit VBA zu bewerkstelligen ist, bin ich auf Hilfe angewiesen. Wäre nett, wenn ihr mir helfen würdet.
An dieser Stelle bereits Dank für jede Form von Hilfe
Mfg
Fritz

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aus Zeiträumen mit VBA Terminplan erstellen
06.06.2004 09:52:03
Josef
Hallo Fritz!
Probier mal.
Option Explicit

Sub Termine_Eintragen()
Dim wksD As Worksheet
Dim wksP As Worksheet
Dim intC As Integer
Dim intRow As Integer
Dim intR As Integer
Set wksD = Sheets("Daten")
Set wksP = Sheets("Plan")
wksP.Range("A5:B1000").ClearContents
For intRow = 5 To 16
For intC = 0 To wksD.Cells(intRow, 4) - 1
wksP.Cells(intRow + intR, 1) = wksD.Cells(intRow, 1)
wksP.Cells(intRow + intR, 2) = wksD.Cells(intRow, 2) + intC
intR = intR + 1
Next
intR = intR - 1
Next
End Sub

Gruß Sepp
Anzeige
AW: Aus Zeiträumen mit VBA Terminplan erstellen
Fritz
Hallo Sepp,
zunächst vielen Dank für deine Bemühungen. Mit einer wenig anschaulichen Darstellung der Aufgabenstellung habe ich dir und allen anderen Forumsteilnehmern die Arbeit allerdings unnötig erschwert. Darin sehe ich den Grund dafür, dass die Sache (noch) nicht in gewünschter Weise funktioniert. Ich bitte alle um Entschuldigung und hoffe mit einer verbesserten Darstellung euch die notwendigen Voraussetzungen zu schaffen, dass ihr mir helfen könnt. Nachfolgend Auszüge aus den beiden Tabellen:
Daten
 ABCD
2Auszug aus Tabellenblatt "Daten":   
3    
4 BeginnEndeTage
5111.01.200517.01.20056
6224.04.200502.05.20058
7327.08.200530.08.20053
84   
95   
106   
117   
128   
139   
1410   
1511   
1612   
17    
Formeln der Tabelle
D5 : =DATEDIF(B5;C5;"d")
D6 : =DATEDIF(B6;C6;"d")
D7 : =DATEDIF(B7;C7;"d")
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Plan
 ABC
2Auszug aus Tabelle "Plan":  
3   
4Nr.Datum 
5111.01.2005 
6112.01.2005 
7113.01.2005 
8114.01.2005 
9115.01.2005 
10116.01.2005 
11117.01.2005 
12224.04.2005 
13225.04.2005 
14226.04.2005 
15227.04.2005 
16228.04.2005 
17229.04.2005 
18230.04.2005 
19201.05.2005 
20202.05.2005 
21327.08.2005 
22328.08.2005 
23329.08.2005 
24330.08.2005 
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Wenn in die Tabelle "Daten" weitere Termine eingetragen werden, sollte die Terminliste in der Tabelle "Plan" erweitert werden, allerdings sollten alle in dieser Tabelle bereits bestehenden Einträge erhalten bleiben.
Ich hoffe sehr, dass mir jetzt geholfen werden kann und danke noch einmal allen, die mir Hilfe zukommen lassen.
Viele Grüße
Fritz
P.S. Ich habe beim genauen Durchsehen bemerkt, dass die Formel "Datedif" in der Tabelle "Daten" noch angepasst werden muss. Es soll - wie aus "Plan" ersichtlich - in jedem Fall der erste und der letzte Tag des jeweiligen Blocks in diese Tabelle übernommen werden.
Anzeige
AW: Aus Zeiträumen mit VBA Terminplan erstellen
06.06.2004 11:00:49
Josef
Hallo Fritz!
Dann schreib diesen Code in das Modul der Tabelle "Daten"
(Rechtsklick auf Tabellenreiter &gt Code anzeigen)
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim wksD As Worksheet
Dim wksP As Worksheet
Dim intC As Integer
Dim intRow As Integer
Dim intR As Integer
If Intersect(Target, [C5:C16]) Is Nothing Then Exit Sub
Set wksD = Sheets("Daten")
Set wksP = Sheets("Plan")
wksP.Range("A5:B1000").ClearContents
For intRow = 5 To 16
intR = intR - 1
For intC = 0 To wksD.Cells(intRow, 4)
If wksD.Cells(intRow, 1) <> "" Then
intR = intR + 1
wksP.Cells(intRow + intR, 1) = wksD.Cells(intRow, 1)
wksP.Cells(intRow + intR, 2) = wksD.Cells(intRow, 2) + intC
End If
Next
Next
End Sub

Code eingefügt mit: Excel Code Jeanie
Gruß Sepp
Anzeige
Einfach Spitze! - Vielen Dank!
Fritz
Hallo Sepp,
jetzt funktioniert die Sache einwandfrei. Deine Hilfen - die ich nun zum wiederholten Male in Anspruch nehmen durfte - sind allererste Sahne!
Herzlichen Dank!
Schöne Grüße
Fritz
Nach Formel-Änderung kommt Fehlermeldung
Fritz
Hallo Sepp,
ich habe in der Tabelle "Daten" - wie nachstehend ersichtlich - die Formel zur Berechnung der den Zeitraum umfassenden Tage geändert, mit der nicht gewollten Wirkung, dass nun
1. jeweils ein zusätzlicher Tag in die Tabelle "Plan" eingefügt wird.
2. jeweils die Fehlermeldung "Laufzeitfehler 13 Typen unverträglich" erscheint.
Ich würde jedoch gerne die Formel in Spalte 5 in der geänderten Fassung belassen.
Kann man den Code entsprechend ändern, so dass die geschilderten (ungewünschten) Wirkungen unterbleiben?
Wäre nett, wenn das (ohne großen Aufwand) möglich ist.
Gruß
Fritz
Daten
 ABCD
2Auszug aus Tabellenblatt "Daten":   
3    
4 BeginnEndeTage
5121.01.200425.01.20045
6225.02.200401.03.20046
73   
84   
95   
106   
117   
128   
139   
1410   
1511   
1612   
17    
Formeln der Tabelle
D5 : =WENN(UND(ISTZAHL(B5);ISTZAHL(C5));DATEDIF(B5;C5+1;"d");"")
D6 : =WENN(UND(ISTZAHL(B6);ISTZAHL(C6));DATEDIF(B6;C6+1;"d");"")
D7 : =WENN(UND(ISTZAHL(B7);ISTZAHL(C7));DATEDIF(B7;C7+1;"d");"")
D8 : =WENN(UND(ISTZAHL(B8);ISTZAHL(C8));DATEDIF(B8;C8+1;"d");"")
D9 : =WENN(UND(ISTZAHL(B9);ISTZAHL(C9));DATEDIF(B9;C9+1;"d");"")
D10 : =WENN(UND(ISTZAHL(B10);ISTZAHL(C10));DATEDIF(B10;C10+1;"d");"")
D11 : =WENN(UND(ISTZAHL(B11);ISTZAHL(C11));DATEDIF(B11;C11+1;"d");"")
D12 : =WENN(UND(ISTZAHL(B12);ISTZAHL(C12));DATEDIF(B12;C12+1;"d");"")
D13 : =WENN(UND(ISTZAHL(B13);ISTZAHL(C13));DATEDIF(B13;C13+1;"d");"")
D14 : =WENN(UND(ISTZAHL(B14);ISTZAHL(C14));DATEDIF(B14;C14+1;"d");"")
D15 : =WENN(UND(ISTZAHL(B15);ISTZAHL(C15));DATEDIF(B15;C15+1;"d");"")
D16 : =WENN(UND(ISTZAHL(B16);ISTZAHL(C16));DATEDIF(B16;C16+1;"d");"")
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Anzeige
AW: Nach Formel-Änderung kommt Fehlermeldung
06.06.2004 16:00:21
Josef
Hallo Fritz!
Ist natürlich möglich.
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim wksD As Worksheet
Dim wksP As Worksheet
Dim intC As Integer
Dim intRow As Integer
Dim intR As Integer
If Intersect(Target, [C5:C16]) Is Nothing Then Exit Sub
Set wksD = Sheets("Daten")
Set wksP = Sheets("Plan")
wksP.Range("A5:B1000").ClearContents
For intRow = 5 To 16
intR = intR - 1
If wksD.Cells(intRow, 4) <> "" Then
For intC = 0 To wksD.Cells(intRow, 4) - 1
intR = intR + 1
wksP.Cells(intRow + intR, 1) = wksD.Cells(intRow, 1)
wksP.Cells(intRow + intR, 2) = wksD.Cells(intRow, 2) + intC
Next
End If
Next
End Sub

Viel Spass!
Gruß Sepp
Anzeige
AW: Nach Formel-Änderung kommt Fehlermeldung
Fritz
Hallo Sepp,
prima, vielen Dank.
Ansonsten kann ich mich eigentlich nur wiederholen.
Viele Grüße
Fritz

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige