Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1812to1816
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

2xVerlinkung und Appl.Match

2xVerlinkung und Appl.Match
12.02.2021 12:45:26
Matthias
Hallo liebe Forengemeinde,
ich habe mich das letzte Monat recht intensiv mit Excel VBA beschäftigt / mir versucht ansatzweise beizubringen und stehe nun jedoch an:
Situation:
- Mehrere Tabellenblätter, die jeweils einen Mitarbeiter darstellen (wks1, wks2, wks3,..., wksN)
- in Spalte 2 (B), Zeile 27 aller Worksheets sind Laufnummern (1,2,3,4,5,6,..,n) gelistet. (Hintergrund: Jedes Projekt hat eine Nr.)
- Diese Laufnummer KANN jedoch doppelt vorkommen (also zB in wks1 und in wks3 steht dann in Spalte B "2", die Zeilennr ist jedoch meist unterschiedlich). (Hintergrund: ein und dasselbe Projekt kann von zwei Mitarbeitern gleichzeitig bearbeitet werden)
Wunsch (zb auf wks1 bezogen):
- Nummern in wks1/Spalte 2/ab Zeile 27 mit Nummern der restlichen wks (Spalte 2/Zeile 27) vergleichen und WENN ein Match vorkommt dann soll mir der Code die Zellen daneben entsprechend in beide Richtungen verlinken.
Das ganze passiert, sobald ich bei Mitarbeiter X die entsprechenden Projektdaten eingegeben habe und auf einen Makrobutton "Übermitteln" klicke. Die entsprechenden Daten werden dann in die Zellen des Projektbuddys eingetragen.
Der Code dazu ist untenstehend, die Verlinkung funktioniert aber nur in eine Richtung (Code ist _
in einem Modul, vmtl. müsste ich ihn aber in die entsprechenden Private Subs der Worksheets _
eintragen mit "

Private Sub Worksheet Change(ByVal Target As Range)) ?
Code
Sub MA1ProjektUebermitteln()
'Variablen definieren
Dim iClick As Integer
freiezeileMA1 As Long, freiezeileMAx As Long
Dim wksMA1 As Worksheet
Dim iIndex As Integer
Set wksMA1 = ThisWorkbook.Sheets("MA1")
freiezeileMA1 = wksMA1.Cells(1048576, 2).End(xlUp).Row
If Cells(freiezeileMA1, 6).Value > 0 And Cells(freiezeileMA1, 7).Value > 0 Then
iClick = MsgBox( _
prompt:="Verantwortlichkeit und Buddy wurden ausgewählt, übermitteln?", _
Buttons:=vbYesNo)
If iClick = vbYes Then
MsgBox (wksMA1.Name & "!" & Cells(freiezeileMA1, 2).Address)
n = Worksheets.Count
For iIndex = 1 To n
If Worksheets(iIndex).Name = Cells(freiezeileMA1, 6).Value Then
freiezeileMAx = Worksheets(iIndex).Cells(1048576, 2).End(xlUp).Row + 1
Worksheets(iIndex).Cells(freiezeileMAx, 2) = "=" & wksMA1.Name & "!" &   _
_
_
_
Cells(freiezeileMA1, 2).Address 'Laufnummer
Worksheets(iIndex).Cells(freiezeileMAx, 3) = "=" & wksMA1.Name & "!" &   _
_
_
_
Cells(freiezeileMA1, 3).Address 'Titel
Worksheets(iIndex).Cells(freiezeileMAx, 8) = "=" &wksMA1.Name & "!" &    _
_
_
_
Cells(freiezeileMA1, 8).Address 'Betriebsstätte
Worksheets(iIndex).Cells(freiezeileMAx, 10) = "=" & wksMA1.Name & "!" &  _
_
_
_
Cells(freiezeileMA1, 10).Address 'Anfang Datum
Worksheets(iIndex).Cells(freiezeileMAx, 11) = "=" & wksMA1.Name & "!" &  _
_
_
_
Cells(freiezeileMA1, 11).Address 'Ende Datum
Worksheets(iIndex).Cells(freiezeileMAx, 6).Value = wksMA1.Name
If Cells(freiezeileMA1, 7).Value = "Hauptverantwortlich" Then
Worksheets(iIndex).Cells(freiezeileMAx, 7).Value = "Buddy"
ElseIf Cells(freiezeileMA1, 7).Value = "Buddy" Then
Worksheets(iIndex).Cells(freiezeileMAx, 7).Value = " _
Hauptverantwortlich"
End If
End If
Next iIndex
MsgBox ("Projektnummer, Verantwortlichkeit und Buddy wurden übermittelt")
ElseIf iCklick = vbNo Then
Exit Sub
End If
ElseIf Cells(freiezeileMA1, 6).Value = 0 Or Cells(freiezeileMA1, 7) = 0 Then
MsgBox ("Verantwortlichkeit und Buddy wurden noch nicht eingetragen")
Exit Sub
End If
End Sub

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 2xVerlinkung und Appl.Match
12.02.2021 14:08:36
ChrisL
Hi
Vom aktiven Blatt ausgehend:
Sub MAProjektUebermitteln()
Dim wks As Worksheet
Dim lngZeile1 As Long, lngZeile2 As Long
With ActiveSheet
lngZeile1 = .Cells(Rows.Count, 2).End(xlUp).Row
If .Cells(lngZeile1, 6) > 0 And .Cells(lngZeile1, 7) > 0 Then
If MsgBox(prompt:="Verantwortlichkeit und Buddy wurden ausgewählt, übermitteln?", _
Buttons:=vbYesNo) = vbYes Then
For Each wks In ThisWorkbook.Worksheets
If wks.Name = .Cells(lngZeile1, 6) Then
lngZeile2 = .Cells(Rows.Count, 2).End(xlUp).Row
wks.Cells(lngZeile2, 2) = "=" & .Name & "!" & Cells(lngZeile1, 2).Address
wks.Cells(lngZeile2, 3) = "=" & .Name & "!" & Cells(lngZeile1, 3).Address
wks.Cells(lngZeile2, 8) = "=" & .Name & "!" & Cells(lngZeile1, 8).Address
wks.Cells(lngZeile2, 10) = "=" & .Name & "!" & Cells(lngZeile1, 10).Address
wks.Cells(lngZeile2, 11) = "=" & .Name & "!" & Cells(lngZeile1, 11).Address
wks.Cells(lngZeile2, 6) = .Name
If .Cells(lngZeile2, 7) = "Hauptverantwortlich" Then
wks.Cells(lngZeile1, 7) = "Buddy"
Else
wks.Cells(lngZeile1, 7) = "Hauptverantwortlich"
End If
Exit For
End If
Next wks
End If
Else
MsgBox ("Verantwortlichkeit und Buddy wurden noch nicht eingetragen")
End If
End With
End Sub
cu
Chris
Anzeige
AW: 2xVerlinkung und Appl.Match
13.02.2021 23:30:50
Yal
Hallo Matthias,
ich gebe zu, dass ich die Form des Links wie in deinem Beispiel nicht genau angeschaut. Aber bei Bedarf kannst Du es leicht umbiegen.
https://www.herber.de/bbs/user/143894.xlsm
Was wird da gemacht?
Ich gehe einmal durch alle Einträge und sammele die Projekt-Information in Objekte, die in eine Collection gesammelt werden. Collection, weil ich dann per Schlüssel das Ziel-Element erreichen kann.
Alternativ wäre eine temporäre Übersichtblatt mit 5 Spalten: Projekt-Id, Hauptverantwortlich, Adresse, wo der Verantwortlich steht, Buddy und wo der Buddy steht. Da Projekt-Id eindeutig ist und das Blatt temporäre wäre, konnte man der Projekt 5 auf Zeile 5 legen, 8 auf 8, usw.
Wäre vielleicht eine version, die leichter zu verstehen gewesen wäre.
VG
Yal
Anzeige
AW: 2xVerlinkung und Appl.Match
12.02.2021 14:21:42
Yal
Hallo Matthias,
was passiert, wenn mehr als 2 Mitarbeiter an einem Projekt arbeiten?
Wäre es nicht einfacher eine Übersichtblatt zu haben, wo alle Projekt aufgelistet sind (Spalte A) und Spalte B, C, D,... alle MA zu diesem Projekt?
Eine Realtime-Prüfung+Ergänzung ist problematisch (Worksheet_Change), weil bei jeder Eingabe alle Tabelle geprüft werden sollen, was eine Wartezeit verursacht.
VG
Yal
AW: 2xVerlinkung und Appl.Match
13.02.2021 09:10:22
Matthias
Hallo Ihr Beiden,
danke vorweg für die Antworten.
-Chris: Dein Code-Vorschlag macht im Wesentlichen das, was meiner auch schon tut: nur in "eine Richtung" verlinken
-Yal: Es arbeiten nie mehr als 2 MA an diesen Kleinprojekten. Eine Übersichtstab ist in dem Fall nicht zielführend, da es um eine Mitarbeiterübersicht geht:
Im Fall eines Doppelprojektes, muss nicht immer alles beim anderen Mitarbeiter manuell angepasst werden, sollte sich etwas ändern.
Anbei noch ein Beispielfile.
https://www.herber.de/bbs/user/143872.xlsm
Es funktioniert alles, so wie ich will nur diese Doppelverlinkung bekomme ich einfach nicht hin.
Und beim Worksheet Change Event blicke ich leider noch nicht so durch.
Glg und Danke für Eure Hilfe,
Matthias
Anzeige
AW: 2xVerlinkung und Appl.Match
13.02.2021 21:41:09
Matthias
Zur Info:
Anfrage läuft nun auch übers VBA Forum (dort gab es bereits einen tollen Vorschlag, funktioniert aber noch nicht ganz):
https://www.vba-forum.de/View.aspx?ziel=65402
Glg Matthias
AW: 2xVerlinkung und Appl.Match
14.02.2021 10:36:41
Yal
Hallo Matthias,
anbei ein Verusch
https://www.herber.de/bbs/user/143900.xlsm
Schaue im Coding. Ich habe es nicht mit einer Sdhaltfläche verbunden. Auch die Form der "Link" ist vielleicht verbesserungswürdig.
VG
Yal
Doppelt!!
14.02.2021 11:05:47
Yal
Oops. Ich sehe gerade, dass mein Posting von gestern Abend doch angekommen, nur nicht, wo ich dachte.
Datei ist daher doppelt. Es kein Unterschied zwischen beiden.
Sorry.
Yal
Anzeige
falls es jemanden interessiert...
14.02.2021 14:34:53
Werner
Hallo,
...Crossposting, im VBA-Forum auch noch.
Aber weder auf den Crosspost, noch auf die Tatsache, dass das Problem dort gelöst wurde, muss man hinweisen.
Wozu auch, ist doch egal, dass die Helfer hjier für den Papierkorb arbeiten.
Gruß Werner
Revidiere meinen Beitrag...
14.02.2021 14:38:29
Werner
Hallo,
...der Hinweis aufs VBA Forum ist hier vorhanden.
Gruß Werner
AW: Revidiere meinen Beitrag...
14.02.2021 19:24:53
Matthias
Hallo liebe Forengemeinde,
sorry für den Cross-Post, musste bis morgen zu einer Lösung kommen und habe mich daher auch ans andere Forum gewendet.
Der Beitrag kann jedenfalls als geschlossen betrachtet werden.
Lösung siehe oben geposteter Link zum vba forum :)
Glg Matthias
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige