So funktioniert JustAnswer:
  • Fragen Sie einen Experten
    Tausende Experten in über 200 Kategorien.
  • Erhalten Sie eine professionelle Antwort
    Per E-Mail oder sofortiger Benachrichtigung, während Sie auf unserer Website warten. Stellen Sie ggf. weitere Anschlussfragen.
  • 100%ige Zufriedenheit garantiert
    Bewerten Sie die erhaltene Antwort.
Stellen Sie Ihre Frage an pregh.
pregh
pregh, Informatiker
Kategorie: Computer
Zufriedene Kunden: 42
Erfahrung:  4 Jahre Berufserfahrung, davon 2 als leitender Softwareentwickler.
64861198
Geben Sie Ihre Frage in der Kategorie Computer hier ein
pregh ist jetzt online.

Problem in Excel: In einem als Kalender aufgebauten Tabellenblatt

Kundenfrage

Problem in Excel: In einem als Kalender aufgebauten Tabellenblatt hab ich pro Tag 5 Filialen zum Technischen Update eingetragen.
In einer anderen Tabelle, die die Daten der Filiale als Liste enthält, möchte ich jetzt das Datum des technischen Updates automatisch eintragen lassen.
Mit SVERWEIS und VERGLEICH bin ich nicht weitergekommen.

Weiß jemand eine Antwort?
Gepostet: vor 5 Jahren.
Kategorie: Computer
Experte:  xxx hat geantwortet vor 5 Jahren.
Guten Tag !

Vielen Dank XXXXX XXXXX Anfrage. Ich hoffe sehr, Ihnen bei der Lösung Ihres Problems behilflich sein zu können.


So ganz klar ist mir das jetzt nicht. Aber ich tippe einfach einmal, daß man das mit einer Kombination der Funktionen SVERWEIS(......INDIREKT(....)) hinbekommen sollte.
Kunde: hat geantwortet vor 5 Jahren.
Hallo Pysikus,

damit komm ich noch nicht weiter. Ich hab mein Problem mal als Beispiel angelegt und die Screenshots beigefügt.

Gruß
Frank Milkert

graphic

graphic
Experte:  xxx hat geantwortet vor 5 Jahren.
Danke XXXXX XXXXX Screenshots. Das habe ich dann doch etwas mißverstanden.

Aus meiner Sicht werden Sie da nicht um die Verwendung eines Makros herumkommen. VB ist aber leider nicht meine Baustelle, deshalb gebe ich die Frage wieder für andere Experten frei.
Ich hoffe, es kann Ihnen so weitergeholfen werden.
MfG, Physikus
Experte:  pregh hat geantwortet vor 5 Jahren.
Hallo, :)

meiner Meinung nach kommen Sie mit der bestehenden Tabellenstruktur auch um kein Makro herum.

Ich vermute Sie benotigen die Kalenderstruktur für eine Art Historie? Gibt es dann beispielsweise mehrere Einträge mit Text "100" im Kalender?

Das Problem ist, dass ja mehrere Felder immer überprüft werden müssen, damit festgestellt werden kann, welches Datum übertragen werden soll.

Beste Grüße!
pregh, Informatiker
Kategorie: Computer
Zufriedene Kunden: 42
Erfahrung: 4 Jahre Berufserfahrung, davon 2 als leitender Softwareentwickler.
pregh und weitere Experten für Computer sind bereit, Ihnen zu helfen.
Kunde: hat geantwortet vor 5 Jahren.
Hallo pregh,

da hab ich falsch geklickt. Eigentlich wollten Sie ja noch weitere Informationen.
Der Wert 100 darf immer nur einmal in der Tabelle erscheinen, da es um einen Update Termin geht. Wird der Wert ein zweites Mal eingegeben, dann darf die Funktion gern einen Fehler ausgeben.

Meine Idee war ursprünglich, das mit VERGLEICH die Spaltenposition in der Matrix ermittelt wird und darüber hole ich mir in der Datumszeile das entsprechende Datum. Ich bekomm es aber nicht hin. Haben Sie eine Idee?

Gruß
Frank Milkert
Experte:  pregh hat geantwortet vor 5 Jahren.
Hallo Herr Milkert,

ihre Idee ist soweit korrekt, erfordert nur einen Vergleich über alle Zellen, quasi

For Each cell in Range(Kalender)
if (cell.value <> "") then
pushDate(cell.value, date)
end if
Next

So sähe das in Pseudocode aus. Gibt es etwas, was gegen Makros auf Ihrer Seite spricht?

Mit einer einfachen Formel ist es nicht handhabbar. Es sei denn Sie ändern die Struktur der Tabelle, aber dann müssten Sie auf den Kalender verzichten. Dann könnten Sie aber auch gleich auf die Formel verzichten und das Datum direkt in die Tabelle auf Bild 2 eintragen.

Beste Grüße!
Kunde: hat geantwortet vor 5 Jahren.
Hallo, ich hatte die letzten Tage keine Zeit mich mit dem Problem zu beschäftigen, bin aber für Hilfe dankbar. Ich bin in Makros bei Excel nicht so firm, werd den Tipp aber ausprobieren. Haben Sie noch eine Idee, wie ich das Makro am Besten formuliere? Ich wollte es eigentlich aufzeichnen - wie in Word - und dann anpassen, aber das läuft anscheinend in Excel alles etwas anders.

Gruß
Frank Milkert
Experte:  pregh hat geantwortet vor 5 Jahren.
Hallo Herr Milkert,

ich helfe Ihnen gerne (nicht nur, weil Sie Sich oben verklickt und somit bezahlt haben :D).

Ich habe vor einiger Zeit einige Makros programmiert, da lassen sich ja sogar richtig schöne Oberflächen basteln, etc. Allerdings habe ich da nie Makros ausgezeichnet, sondern nur programmiert.

Ich kenne die VBA-Syntax nicht mehr ganz auswendig, Sie müssen da eventuell korrigieren, aber ich probiers mal auf die Schnelle

Über Extras->Makros->VBA müssten Sie ja in den VBA-Editor kommen. Dort würde ich unter "Diese Arbeitsmappe" (oder so) mit folgendem anfangen:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim rgCalendar As Range(X8,Z9) 'Anpassen an Ihren Kalender!
If (sh = Worksheets(1)) Then 'Eventuell über den Namen prüfen, ich weiß nicht, ob 'das sh Objekt in dem Fall vom Typ Worksheet ist.
If Intersect(Target, rgCalendar) Is Not Nothing 'sind wir im Kalender?
If (Target.Cells.Count = 1) ' nur eine Zelle bearbeitet?
pushDate(Target, Target.Columns(1).Cell(1,1).value) ' Datum in anderes 'Worksheet schreiben
End if
End If
End If
End Sub


Private Sub pushDate(ByVal calendarEntry As Range, ByVal newDate As String)
For Each cell in Worksheets(2).Columns(1)
If (cell.value = calendarEntry.Cell(1,1).value) Then
Worksheets(2).Cell(cell.rowindex, cell.columnindex +1).value = newDate
End If
Next
End Sub


Irgendwie so stelle ich mir das gerade vor - wie gesagt, ich erhebe keinen Anspruch auf korrekte Syntax, aber vielleicht haben Sie ja irgendjemand zur Hand (oder Sie können das vielleicht selbst), der Ihnen das kurz testet und korrigiert.


Sollten Sie öfter Bedarf an Makros haben, wenden Sie Sich gerne an mich... vielleicht lässt Sich da ja was machen. ;)


Beste Grüße!