Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Suchen und Ersetzen mit Makro möglich?
#11
Hi,

da passt aber etwas nicht wirklich zusammen.
In deiner Frage #1 steht    1-3   = 7:45-9:25


deine Datei mit den Werten zeigt aber

1 = 07:35-8:30

3 = 09:25-10:10

Für mich wäre also die Ersetzung dann bei 1 - 3:  7.35 - 10.10

Dein Stundenaufbau ist allerdings suboptimal, da dürfen je Zahl nur ein Zeitwert stehen, sonst müßte das umständlich erst extrahiert werden aus deinen Angaben.
Mit freundlichen Grüßen  :)
Michael
Antworten Top
#12
Hallo,

grundsätzlich ist es so, dass man im Prinzip nur genaue Übereinstimmungen vergleichen kann. So ganz habe ich noch nicht verstanden, wo die Reise hingen soll. Beschreibe das bitte mal etwas genauer, gerne auch mit einer Beispieltabelle.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#13
Ich habe die zweifelhafte Ehre, den Stundenplan für unser Institut zu bauen. 
Die Lehrfächerverteilung, also die zugrunde liegende Datenbank mit allen Einträgen (wann, wo, wer), sieht vereinfacht so aus wie die Datei im Anhang.

Bei der Spalte "Einheiten" sollen also jetzt nicht die Einheiten, die es in allen möglichen Kombinationen gibt, stehen, sondern die konkreten Uhrzeiten.


Angehängte Dateien
.xlsx   LV Beispiel.xlsx (Größe: 9,3 KB / Downloads: 4)
Antworten Top
#14
Hallo Warrender,

Du brauchst eine separate Tabelle mit den Stunden, auf die dann per SVERWEIS (Vlookup) zugegriffen wird. Im Beispiel in einem zusätzlichen Tabellenblatt.

Stunden

ABC
1EinheitBeginnEnde
2107:4508:30
3208:3509:20
4309:2510:10
5410:1511:00
6511:0511:50
76
87
98
109
1110
1211
1312

Beim Starten des folgenden Makros muss die Tabelle1 aktiv sein:
Code:
Sub EinheitenZuStunden()
 Dim rngEinheiten As Range
 Dim rngStunden As Range
 Dim varEinheten As Variant  
 Set rngStunden = Worksheets("Stunden").Range("A1").CurrentRegion
 Set rngEinheiten = ActiveSheet.Range("A1").CurrentRegion.Columns(6)
 For Each rngEinheiten In rngEinheiten.Offset(1).Resize(rngEinheiten.Rows.Count - 1).Cells
   varEinheten = Split(rngEinheiten, "-")
     rngEinheiten.Value = Format(Application.VLookup(CLng(varEinheten(0)), rngStunden, 2, 0), "hh:nn") & "-" & _
                          Format(Application.VLookup(CLng(varEinheten(UBound(varEinheten))), rngStunden, 3, 0), "hh:nn")
 Next rngEinheiten
End Sub


.xlsm   LV Beispiel.xlsm (Größe: 17,91 KB / Downloads: 4)

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Warrender
Antworten Top
#15
Schau mal jetzt. Kopiere dir den Link und trag in ein. Bei mir geht es.
Antworten Top
#16
Hallo Franke,

auch wenn die Seite wie eine Hilfeseite aussah: der Hinweis auf eine Kaufversion zum Sonderpreis ist Werbung und in diesem Forum nicht erlaubt.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#17
Vielen Dank, Kuwer!

Ich habe das Tabellenblatt "Stunden" angepasst und soweit funktioniert alles recht gut.
Sobald das Skript allerdings eine leere Zeile findet, bricht das Makro ab und wirft bei neuerlichem Start eine Fehlermeldung aus. Gibt es hierfür eine Lösung? Das Auffüllen mit der leeren Zeilen wäre sehr umständlich.
Antworten Top
#18
Hallo Warrender,

teste mal damit:
Code:
Sub EinheitenZuStunden()
    Dim rngEinheiten As Range
    Dim rngStunden As Range
    Dim varEinheten As Variant
    Set rngStunden = Worksheets("Stunden").Range("A1").CurrentRegion
    Set rngEinheiten = ActiveSheet.Range("A1").CurrentRegion.Columns(6)
    For Each rngEinheiten In rngEinheiten.Offset(1).Resize(rngEinheiten.Rows.Count - 1).Cells
       If InStr(1, rngEinheiten.Text, ":") = 0 And Len(rngEinheiten.Text) Then
           varEinheten = Split(rngEinheiten, "-")
           rngEinheiten.Value = Format(Application.VLookup(CLng(varEinheten(0)), rngStunden, 2, 0), "hh:nn") & "-" & _
                                Format(Application.VLookup(CLng(varEinheten(UBound(varEinheten))), rngStunden, 3, 0), "hh:nn")
       End If
    Next rngEinheiten
End Sub

Gruß Uwe
Antworten Top
#19
Danke, das Makro bricht noch immer bei einer leeren Zelle ab.
Antworten Top
#20
(19.12.2018, 08:55)Warrender schrieb: Danke, das Makro bricht noch immer bei einer leeren Zelle ab.

nein, macht es nicht. Vermutlich beinhaltet die vermeintlich leere Zelle Leerzeichen. So geht es auch damit:
Code:
Sub EinheitenZuStunden()
   Dim rngEinheiten As Range
   Dim rngStunden As Range
   Dim varEinheten As Variant
   Set rngStunden = Worksheets("Stunden").Range("A1").CurrentRegion
   Set rngEinheiten = ActiveSheet.Range("A1").CurrentRegion.Columns(6)
   On Error Resume Next
   For Each rngEinheiten In rngEinheiten.Offset(1).Resize(rngEinheiten.Rows.Count - 1).Cells
      If InStr(1, rngEinheiten.Text, ":") = 0 And Len(rngEinheiten.Text) Then
          varEinheten = Split(rngEinheiten, "-")
          rngEinheiten.Value = Format(Application.VLookup(CLng(varEinheten(0)), rngStunden, 2, 0), "hh:nn") & "-" & _
                               Format(Application.VLookup(CLng(varEinheten(UBound(varEinheten))), rngStunden, 3, 0), "hh:nn")
      End If
   Next rngEinheiten
   On Error GoTo 0
End Sub

Gruß Uwe
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste