Anzeige
Archiv - Navigation
1240to1244
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

Farbe auslesen..Bereiche füllen - VBA

Farbe auslesen..Bereiche füllen - VBA
Matthias
Hallo Zusammen,
anhand der beigefügten Mappe - Anwesenheit, benötige ich Hilfe,
in dem "2 Schichtbereich" habe ich es geschafft alles mit Formeln zu lösen, aber der Bereich der 3 Schichten macht mir da ein Strich durch die Rechnung, komme da nicht weiter.
In der Mappe habe ich alles soweit beschrieben wie es mal werden soll.
ob es nur mit Formel klappt , wird kompliziert.
Ich denke eher an eine VBA Lösung
Erich G. hatte mir schon geholfen die Einfärbung der KW zu gestallten,- Danke nochmals an Ihn.
Schaut Euch die Mappe mal an :
https://www.herber.de/bbs/user/78120.xlsm
Gruß u. Danke Matthias

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Farbe auslesen..Bereiche füllen - VBA
29.12.2011 19:38:31
Matthias
So hab mal bissel Versucht, Abfrage einer Zelle mit dem darunter liegenden Bereich füllen.
Sub FarbeAuslesen()
'blau = 12611584
'grün = 5287936
'braun = 411543
If Range("F36").Interior.Color = 12611584 Then 'wenn blau
Range("F39:F56").Value = "S" ' dann S
End If
If Range("F36").Interior.Color = 5287936 Then ' wenn grün
Range("F39:F56").Value = "F" ' dann F
End If
If Range("F36").Interior.Color = 411543 Then ' wenn braun
Range("F39:F56").Value = "N" ' dann N
End If
End Sub
das Klappt prima,...nun muss das ganze für den kompletten abfragebeich defeniert werden F36:AJ36
Range("F36:AJ36") hilft mir nicht weiter ich werde da wohl mit Variablen arbeiten müssen.
Hilfe wäre nicht schlecht, bin immer noch Anfänger in VBA - danke
Gruß Matthias
Anzeige
Ich beende das Objekt..!
31.12.2011 16:34:27
Matthias
habe soweit es geht mit Formeln gearbeitet, somit sollte mir der jetztige Aufbau reichen.
Schade das sich hier keiner der Sache angenommen hat.
Gruß Matthias
AW: brauchst Du nicht.
31.12.2011 20:25:06
hary
Hallo Matthias
versuch mal dies.

Sub FarbeAuslesen()
Dim spalte As Long
Dim eintrag As String
'blau = 12611584
'grün = 5287936
'braun = 411543
For spalte = 6 To 36
Select Case Cells(36, spalte).Interior.Color
Case 12611584: eintrag = "S"
Case 5287936: eintrag = "F"
Case 411543: eintrag = "N"
Case Else: eintrag = ""
End Select
Cells(39, spalte).Resize(18, 1).Value = eintrag
Next
End Sub

gruss hary
Anzeige
Danke @ hary, ..bleibst du am Ball ,..
01.01.2012 12:36:12
Matthias
....wenn ich weitere Hilfe benötige?
Vorerst aber ein frohes neues Jahr (an alle die dies hier lesen.
Ich bin jetzt wieder dabei umzubauen, werde mich melden, wenn ich den Code eingebettet habe.
Dann noch an die anderen Bereiche anpassen, bin gerade dabei mit Hilfe der "F1" Taste die Range.Resize-Eigenschaft abzuarbeiten.
Eigentlich recht simpel , wenn mann vorher weis wie man den Zielbereich defeniert, so das der jeweils um eine Spalte nach rechts wandert.
bis bald...Gruß Matthias
@ hary, ..Füllbereiche angepasst,..
01.01.2012 16:19:56
Matthias
.... eventuell muss ich die Bereiche einzeln abarbeiten.(for Schleife 1,2,3)
Sub FarbeAuslesen()
Dim spalte As Long
Dim eintrag As String
For spalte = 6 To 36
Select Case Cells(36, spalte).Interior.Color
Case 15773696: eintrag = "S"
Case 5296274: eintrag = "F"
Case 411543: eintrag = "N"
Case Else: eintrag = ""
End Select
Cells(39, spalte).Resize(18, 1).Value = eintrag
Next
End Sub

denn jetzt wollte ich als nächsten Schritt die " Wenn Bedingungen einbauen "
IF A39:A56 leer THEN keinen Eintrag in den Füllbereich
IF F38:AJ38 "Sa" oder "So" keinen Eintrag in den Füllbereich
IF F38:AJ38 ein "Feiertag" ist ; keinen Eintrag in den Füllbereich
Namensdefenierung "Feiertage" kommt aus Tabelle"Feiertage" Range B3:B31
Eine Musterdatei liegt bei , hier habe ich soweit alles eingegeben was ich konnte.
https://www.herber.de/bbs/user/78156.xlsm
Im vorraus schon ein Fettes Lob an Alle die sich hier Beteiligt haben, Danke.
Gruß Matthias
Anzeige
Status offen vergessen..! sorry OT
01.01.2012 16:23:42
Matthias
.
AW: versuchs mal so
01.01.2012 19:05:01
hary
Hallo Matthias
Ja die drei Bereiche muessen in Schleife. Die Schleife mit Step abarbeiten.
Teste mal dies. Fuer die drei Bereiche.

Sub FarbeAuslesen()
'Der aufruf erfoglt über aktuallisieren()
Dim spalte As Long
Dim eintrag As String
Dim zeile As Long
'blau = 15773696
'grün = 5296274
'braun = 411543
For zeile = 36 To 80 Step 22
For spalte = 6 To 36
If Weekday(Cells(zeile + 2, spalte), vbMonday) 

gruss hary
Syntaxfehler
01.01.2012 19:49:33
Matthias
Hallo Hary,
Fehler meldung : Syntaxfehler ?
<b>If Weekday(Cells(zeile + 2, spalte), vbMonday) < 6 And WorksheetFunction.CountIf(Range(" _
Feiertage"), Cells(zeile + 2, spalte)) = 0 Then</b>
dieser codebereich ist komplett in rot
wenn ich den komplett neu schreibe und dann ausführe markiert er mir die Codezeile ohne Fehlermeldung
Matze
Anzeige
AW: Syntaxfehler
01.01.2012 20:00:26
Matthias
so habe es raus warum der da stehen bleibt, es liegt daran das in den Zellen
AH38 : AJ38
Im Monat Februar stehen da keine "Werte" oder ein Monat hat nur 30 Tage , dann ist bei "spalte"35 Schluss.
Wennleer AH38:Aj38 - darf auch kein "eintrag" erfolgen
Matze
AW: Syntaxfehler
01.01.2012 20:37:05
hary
Hallo

Sub FarbeAuslesen()
'Der aufruf erfoglt über aktuallisieren()
Dim spalte As Long
Dim eintrag As String
Dim zeile As Long
'blau = 15773696
'grün = 5296274
'braun = 411543
For zeile = 36 To 80 Step 22
For spalte = 6 To 36
If Cells(zeile, spalte) = "" Then Exit Sub 'Stoppt Makro bei leerer Zelle
If Weekday(Cells(zeile + 2, spalte), vbMonday) 

gruss hary
Anzeige
@ Hary - THX - DANKe - Freu !!!...
01.01.2012 21:14:14
Matthias
.....jetzt hab ich es geschaft in meiner Orginaldatei deinen Code anzupassen,..
es läuft alles ...top Arbeit von dir, Danke.
Matthias
AW: kleiner fehler
02.01.2012 04:03:06
hary
Hallo Matthias
setz mal diese Zeile neu.

If Cells(zeile, spalte) = "" Then Exit For

Exit Sub ist falsch. Dann macht er die letzten beiden Bereiche nicht.
gruss hary

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige