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

Hilfe!!MgaMakro für Spezialisten

Hilfe!!MgaMakro für Spezialisten
28.11.2005 13:38:17
achim
Hallo Excel Freunde insbesonders an die makro Spezialisten!!!!
Wer kann mir dieses Makro zurecht stricken?
https://www.herber.de/bbs/user/28780.zip
Danke achim h.

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

Betreff
Datum
Anwender
Anzeige
AW: Hilfe!!MgaMakro für Spezialisten
28.11.2005 20:59:37
Beni
Hallo Achim,
in Deiner Beispielmappe gibt es keine Uebereinstimmungen, ich habe Uebereinstimmungen simuliert und das Makro funktioniert.
Gruss Beni
https://www.herber.de/bbs/user/28796.zip

Sub Uebereinstimmung()
Dim ws1, ws2 As Worksheet
Set ws1 = Sheets("Einteiler")
Set ws2 = Sheets("Dienste")
Dim z, r As Integer
For z = 2 To ws1.Cells(Rows.Count, 1).End(xlUp).Row
For r = 2 To ws2.Cells(Rows.Count, 1).End(xlUp).Row
If ws1.Cells(z, 5) = ws2.Cells(r, 10) _
And ws1.Cells(z, 10) = ws2.Cells(r, 6) _
And ws1.Cells(z, 23) = ws2.Cells(r, 7) _
And ws1.Cells(z, 12) = "" Then
If Not WorksheetFunction.CountIf(Range(ws1.Cells(2, 12), ws1.Cells(36, 12)), ws1.Cells(z - 1, 12)) = 2 Then
ws1.Cells(z, 12) = ws2.Cells(r, 1)
Exit For
End If
End If
Next r
Next z
End Sub

Anzeige
AW: Hilfe!!MgaMakro für Spezialisten
29.11.2005 17:31:24
achim
Hallo Beni
danke für die rückmeldung
ich habe das makro ausprobiert aber bei mir funzt es nicht wie es soll.
mache ich etwas falsch?
also... so wie ich das sehe sind die simulierten übereinstimmungen richtig.
nun sollte das makro in der Tab. einteiler nach L schauen und wenn die zelle leer ist die dienstnummer eintragen.
das makro scheint beim probieren wahllos die dienste ein zu stellen.
kannst du noch mal schauen
gruß
achim h.
AW: Hilfe!!MgaMakro für Spezialisten
29.11.2005 21:21:02
Beni
Hallo Achim,
ich hab den Fehler, die 1er in Dienst/SpalteW sind im Textformat, mit CInt() mache ein Zahlenformat.
Gruss Beni

Sub Uebereinstimmung()
Dim ws1, ws2 As Worksheet
Set ws1 = Sheets("Einteiler")
Set ws2 = Sheets("Dienste")
Dim z, r As Integer
For z = 2 To ws1.Cells(Rows.Count, 1).End(xlUp).Row
If IsNumeric(ws1.Cells(z, 23)) Then
ws1.Cells(z, 23) = CInt(ws1.Cells(z, 23))
End If
Next z
For z = 2 To ws1.Cells(Rows.Count, 1).End(xlUp).Row
a = ws1.Cells(z, 5)
b = ws1.Cells(z, 10)
c = ws1.Cells(z, 23)
d = ws1.Cells(z, 12)
For r = 2 To ws2.Cells(Rows.Count, 1).End(xlUp).Row
If ws1.Cells(z, 5) = ws2.Cells(r, 10) _
And ws1.Cells(z, 10) = ws2.Cells(r, 6) _
And ws1.Cells(z, 23) = ws2.Cells(r, 7) _
And ws1.Cells(z, 12) = "" Then
If Not WorksheetFunction.CountIf(Range(ws1.Cells(2, 12), ws1.Cells(36, 12)), ws1.Cells(z - 1, 12)) = 2 Then
ws1.Cells(z, 12) = ws2.Cells(r, 1)
Exit For
End If
End If
Next r
Next z
End Sub

Anzeige
AW: Hilfe!!MgaMakro für Spezialisten
29.11.2005 23:17:00
achim
Hallo Beni
danke für die rückmeldung
das makro läuft schon besser.ich habe das makro getestet und festgestellt das,dass Makro eine dienstnummer aus der Tab dienst 4 mal vergiebt.
geht das auch das eine DienstNummer aus Tab dienste nur zwei mal vergeben wird.irgendwie überspringt das makro obwohl die zelle leer ist obwohl auch die übereinstimmungen vohanden sind.
kannst du das noch mal prüfen, bitte?
ich weiss das ist schon irgendwie ganz schön viel was ich da um hilfe bitte.
danke für deine geduld und bis auf eine weitere rückmeldung.
danke
achim h.
AW: Hilfe!!MgaMakro für Spezialisten
30.11.2005 21:33:59
Beni
Hallo Achim,
ich habe den Fehler gefunden und getestet.
Gruss Beni

Sub Uebereinstimmung()
Dim ws1, ws2 As Worksheet
Set ws1 = Sheets("Einteiler")
Set ws2 = Sheets("Dienste")
Dim z, r As Integer
For z = 2 To ws1.Cells(Rows.Count, 1).End(xlUp).Row
If IsNumeric(ws1.Cells(z, 23)) Then
ws1.Cells(z, 23) = CInt(ws1.Cells(z, 23))
End If
Next z
For z = 2 To ws1.Cells(Rows.Count, 1).End(xlUp).Row
For r = 2 To ws2.Cells(Rows.Count, 1).End(xlUp).Row
If ws1.Cells(z, 5) = ws2.Cells(r, 10) _
And ws1.Cells(z, 10) = ws2.Cells(r, 6) _
And ws1.Cells(z, 23) = ws2.Cells(r, 7) _
And ws1.Cells(z, 12) = "" Then
If Not WorksheetFunction.CountIf(Range(ws1.Cells(2, 12), ws1.Cells(36, 12)), ws2.Cells(r, 1)) = 2 Then
ws1.Cells(z, 12) = ws2.Cells(r, 1)
Exit For
End If
End If
Next r
Next z
End Sub

Anzeige
o.T. Danke Super Hilfe
01.12.2005 07:32:48
achim
Hallo Beni
ich habe auch getestet und so wie es aussieht klappt nun alles super.
ich möchte mich nochmals herzlichst bei dir für die schon mehr als hilfe bedanken.
gruß aus dem ruhrgebiet
achim h.
Fehler beim testen der gleiche wie vorher
01.12.2005 14:33:57
achim
Hallo beni
habe noch mal getestet und leider.......verteilt das makro die gleiche dienstnummer mahr als zwei mal.Siehe Abhang...
https://www.herber.de/bbs/user/28884.zip
kannst du noch mal schauen ,bitte.
danke achim h.
PS. ich finde das gut ,dass du den code in den beitrag kopierst denn ich kann zwar auf der arbeit zippen aber leider nicht unloaden. von daher ist das so für mich ganz gut.
Anzeige
AW: Fehler beim testen der gleiche wie vorher
01.12.2005 16:05:47
Beni
Hallo Achim,
die Tabellengrösse war auf 36 Zeilen eigestellt, jetzt ist sie variabel.
Gruss Beni

Sub Uebereinstimmung()
Dim ws1, ws2 As Worksheet
Set ws1 = Sheets("Einteiler")
Set ws2 = Sheets("Dienste")
Dim z, r, lz As Integer
For z = 2 To ws1.Cells(Rows.Count, 1).End(xlUp).Row
If IsNumeric(ws1.Cells(z, 23)) Then
ws1.Cells(z, 23) = CInt(ws1.Cells(z, 23))
End If
Next z
lz = ws1.Cells(Rows.Count, 1).End(xlUp).Row
For z = 2 To ws1.Cells(Rows.Count, 1).End(xlUp).Row
For r = 2 To ws2.Cells(Rows.Count, 1).End(xlUp).Row
If ws1.Cells(z, 5) = ws2.Cells(r, 10) _
And ws1.Cells(z, 10) = ws2.Cells(r, 6) _
And ws1.Cells(z, 23) = ws2.Cells(r, 7) _
And ws1.Cells(z, 12) = "" Then
If Not WorksheetFunction.CountIf(Range(ws1.Cells(2, 12), ws1.Cells(lz, 12)), ws2.Cells(r, 1)) = 2 Then
ws1.Cells(z, 12) = ws2.Cells(r, 1)
Exit For
End If
End If
Next r
Next z
End Sub

Anzeige
AW: Fehler beim testen der gleiche wie vorher
01.12.2005 22:06:14
achim
Hallo Beni
Danke für die Rückmeldung- werde morgen bei Zeiten alles ausprobieren.
Gruß
Achim H.
aus dem Ruhrgebiet:-):-)
AW: Fehler beim testen der gleiche wie vorher
02.12.2005 13:54:49
Achim
Hallo Beni
Danke für die Rückmeldung!!
Super!! Das verteilen der Dienste klappt.Nun habe ich noch ein Problem und dann ist die ganze Sache rund.
Ich muss immer zwei Mitatbeiter mit dem gleichen Dienst einteilen.(Sicherheitsdienst)
Nun verteilt das Makro die Dienste und auch nicht mehr als zwei Dienste aber...
Es berücksichtigt nicht das zwei Mitarbeiter eine Gruppe bilden sollen.
Kannst du noch mal schauen ? eine Möglichkeit wäre zusätzlich (in Tab Dienste Typ ist gleich Gruppenbezeichnung)
beim verteilen auch zu berücksichtigen zum Beispiel an einem Donnerstag den 1 Dez. A36 2 mal und so weiter...
Danke achim H.
Anzeige
AW: Fehler beim testen der gleiche wie vorher
02.12.2005 21:40:37
Beni
Hallo Achim,
ich verstehe Deine Frage und trotzdem weis ich nicht was Du meinst.
1. Ich kann pro Tag nur eine DienstNr eintragen.
2. Do A36 D-Art kommt nur einmal vor.
Gruss Beni
AW: Fehler beim testen der gleiche wie vorher
03.12.2005 00:19:15
achim
Hallo Beni
danke für die rückmeldung!
es geht also darum das die dienstnummer aus der tab dienst 2 mal vergeben wird.das makro merkt sich das und das ist auch richtig.
kann man das makro um eine weitere funktion erweitern indem sich das makro merkt an welchen tag welche dienstnummer vergeben worden ist und dann die zwiete vergabe der gleichen dienstnummer nur an einem gleichen wochentag und datum vergibt.
danke und gruß
achim h.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige