|  
                                             
	Hallo Leute! Ich versuche es eine Plantaffel in Excel zu bauen. Dabei benutze ich für die Programmierung der Funktionalitäten VBA. 
	In meiner Tabelle habe ich einen Hauptbereich (z.B.: D6 bis HZ66) . Wenn ich einen beliebigen Teilbereich innerhalb diesem Hauptbereich markiere, sollen dann drei Felder mit Informationen gefüllt werden (in meinem Beispiel:  B1  (Ort), B2 (Datum von) und B3 (Datum bis)). 
	Mit einem Button BUCHEN sollen dann diese Informationen (von Feldern B1, B2 und B3) ausgewertet werden und wenn alles passt, soll dieser Bereich gefärbt werden.  
	Mit der Funktion Worksheet_SelectionChange(..)  habe ich hinbekommen die Werte für die Felder B1, B2 und B3 zu ermitteln. 
	Mein Problem Nr. 1: 
	So wie ich jetzt habe, ist es möglich mehrere Zeilen zu markieren und das möchte ich nicht. Jede Zeile entspricht einem Ort, also wenn ich zwei oder mehrere Zeilen markiere, würde ich damit auch mehrere Orte auswählen. Das Ergebnis wäre dann verfälscht 
	Wie kann ich es so einschrenken, dass ich im Hauptbereich mehrere Teilbereiche pro Zeile markiere? 
	Hier mein Code: 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim endSpalte As Integer
    'MsgBox " Zeile: " & Target.Row & " Spalte:" & Target.Column & " Ende: " & Target.End(xlToLeft).Column & " Count: " & Target.Count
    If Target.Column > 3 And Target.Row > 5 Then
        endSpalte = Target.Column + (Target.Count - 1)
        'MsgBox endSpalte
        Range("B1").Value = Cells(Target.Row, 1).Value
        Range("B2").Value = Cells(4, Target.Column).Value
        Range("B3").Value = Cells(4, endSpalte).Value
        
    End If
End Sub
	Mein Problem Nr. 2: 
	Mit der Funktion findeUndFaerbe() werte ich die Felder B1, B2 und B3 aus und der markierten Bereich wird dann gefärbt. Das läuft gut. Ich möchte, dass dieser Button auch funktioniert, wenn ich die Eingaben Ort, von und bis manuell eingebe (ohne den Hauptarbeitsfeld zu benutzen, also, indem ich Ort, Datum von und Datum bis direkt in B1, B2 und B3 eintippe), das geht aber noch nicht. 
	Hat Jemand eine Idee, wie ich das verwirklichen könnte? 
	Hie mein Code für den Button BUCHEN: 
Sub findeUndFaerbe()
    Dim rngErgebnis As Range
    
    Dim zeile As Integer
    Dim vonCol As Integer
    Dim bisCol As Integer
    
    Dim gesuchterOrt As String
    Dim von As Date
    Dim bis As Date
    
    Dim buchenBtn As CommandBarButton
    Dim reservierenBtn As CommandBarButton
    Dim clearBtn As CommandBarButton
    
    'Dynamischer Array mit Ranges
    
    gesuchterOrt = Range("B1").Value
    von = Range("B2").Value
    bis = Range("B3").Value
    
    'Ort suchen:
    
    'Set rngErgebnis = Columns(1).Find(what:=gesuchterOrt) ' ODER
    Set rngErgebnis = Range("A06:C66").Find(what:=gesuchterOrt, LookIn:=xlValues, LookAt:=xlWhole)
    
    If Not rngErgebnis Is Nothing Then
    
        'Zeilen des Ortes ermitteln
        zeile = rngErgebnis.Row
        
        'von-Spalte ermitteln
        vonCol = spalte(von)
        
        'bis-Spalte ermitteln
        bisCol = spalte(bis)
        
        'Teilbereich färben
        Range(Cells(zeile, vonCol), Cells(zeile, bisCol)).Interior.Color = vbYellow
    End If
End Sub
	Problem Nr. 3: 
	Später möchte ich die Tabelle etwas intelligenter machen. Also, pro Ort (also, pro Zeile) darf man verschiedene Teilbereiche markieren (z.B. Konstanz von 12.3 bis  24.03, von 2.4 bis 18.04, usw.). Ich denke, ich müsste dafür in einer Liste mit Ort als Key, bei jeder Buchung, diese Infos speichern. Dann kann man auch sicher stellen, dass keinen Bereich gebucht wird, der schon gefärbt (gebucht) wurde. 
	Hat Jemand dazu eine Idee? Denn, bei jedem Start dieser Plantafel, mussten diese Informationen wieder aufgeladen werden. Speichert man die dann in einer Datei? Hat Jemand eine Idee, wie ich es vorgehen kann? 
	Ich bedanke mich für jede Hilfe, auch wenn es nur für die Lösung eines Problems wäre! 
	Schönen Abend! 
     |