Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Eingabe automat. in ein anderes Tabellenblatt

Eingabe automat. in ein anderes Tabellenblatt
14.01.2015 20:31:42
Laura
Hallo!
Ich habe folgendes VBA-Problem:
Im Tabellenblatt 1 wird der Situation und dem Kriterium entweder ein x oder ein Wert zugeordnet. In dem Moment, wo das x oder der Wert eingetragen wird, sollen die Angaben aus dem Tabellenblatt 1 automatisch in das Tabellenblatt 2 untereinander übertragen werden.
Ist dies automatisch möglich oder nur mit der Hilfe eines Buttons?
Userbild
Besten Dank im Voraus und viele Grüße :)!

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Im Prinzip auch automat, nur wohin konkret? orT
14.01.2015 22:20:38
Luc:-?
Gruß, Luc :-?

AW: Im Prinzip auch automat, nur wohin konkret? orT
14.01.2015 23:14:38
Laura
Hier mal das Ergebnis des Tabellenblattes 2 zum oben genannten Beispiel:
Userbild

Das sieht nun so aus, als ob das ein Protokoll ...
15.01.2015 03:22:25
Luc:-?
…der Eintragungen in der 1.Tab wdn soll, Laura,
denn auch, falls nachträglich etwas geändert wird, würde, so wie ich mir das bisher vorstelle, eine neue Zeile in der 2.Tab angelegt wdn, also lfdNr, Situation, Beurteilung(sKriterium) und ggf Wert (wenn der eine Zahl oder ≠x ist, je nachdem, welche VerschreibSicherung eingebaut wdn soll).
Falls das Ganze wirklich ein Protokoll wdn soll, ist eine Automatik sinnvoll. Wenn aber nur einmalig eine alternative Liste erzeugt wdn muss, die ggf unabhängig von der QuellTab aktualisiert wdn darf, oder die Daten sortiert übernommen wdn sollen, dürfte ein per Button ausgelöstes Pgm idR geeigneter sein.
Um dein konkretes ErgebnisBsp aautomatisch (als Protokoll?) zu erzeugen, müssten die Werte in der Reihenfolge 1.x, 3, 4, 2.x in die QuellTab eingetragen wdn, denn von der EingabeReihenfolge allein hängt in diesem Fall das Erscheinungsbild der ErgebnisTabelle ab.
Morrn, Luc :-?
Besser informiert mit …

Anzeige
AW: Das sieht nun so aus, als ob das ein Protokoll ...
15.01.2015 07:59:44
Laura
Hallo!
Vielen Dank für die schnelle Antwort.
Also die Reihenfolge in der Zieltabelle muss nicht eingehalten werden. Es geht aber darum, dass in der QuellTab ein x oder Werte eingetragen werden soll und daraufhin im 2. Tab automatisch die Situation, Beurteilung und der Wert untereinander erscheinen soll. Danach wird die 2.Tab ab der Spalte E manuell ergänzt. Später können auch noch zusätzliche Situationen in der QuellTab eingetragen werden, die dann wieder automatisch in der 2. Tab in die nächste freie Zeile eingetragen werden sollen.

Hat leider etwas gedauert, ...
22.01.2015 03:40:15
Luc:-?
…Laura,
weil ich eine deutlich kompliziertere Sache erst zu einem vorläufigen Abschluss bringen wollte.
Falls das nachfolgende Pgm, das eine EreignisProzedur des QuellBlattes der zu übertragenden Daten ist und deshalb in das DokumentKlassenModul dieses Blattes gehört, deinen Vorstellungen entspricht, war's das. Ansonsten musst du dich halt nochmal melden.
Die PgmKonstanten wie BlattNamen, BereichsAdressen u.A. kannst/musst du ggf noch auf deine Verhältnisse ändern:
Rem Überträgt flfd Korrekt/Ergänz aus QBereich nach ZBereich
'   ohne Berücksichtigung bereits zuvor erfolgter Übernahmen
'   in EingabeReihenfolge - Löschgg wdn nicht protokolliert!
Private Sub Worksheet_Change(ByVal Target As Range)
Const adQBer$ = "E7:G106", adQKzl$ = "A6:G6", adQVsp$ = "B1:B106", _
adZBer$ = "A2:D2", naZBl$ = "Tabelle2", noVal$ = "[!Xx]", _
txZKzl$ = "Nr. Situation Beurteilung Werte", ZlVers As Long = 3
Dim aktZTabZl As Long, zKzl$(), _
zBer As Range, zBl As Worksheet
On Error Resume Next
If Target.Count > 1 Or IsEmpty(Target) Then Exit Sub
Set zBl = Me.Parent.Sheets(naZBl): If zBl Is Nothing Then Exit Sub
If Not Intersect(Target, Me.Range(adQBer)) Is Nothing Then
Set zBer = zBl.Range(adZBer): zKzl = Split(txZKzl)
If IsEmpty(zBer.Cells(1, 1)) Then
zBer.HorizontalAlignment = xlCenter
zBer.Font.Bold = True: zBer = zKzl
End If
aktZTabZl = zBer.Row + ZlVers
While Not IsEmpty(zBl.Cells(aktZTabZl, 1))
aktZTabZl = aktZTabZl + 1
Wend
With zBl.Rows(aktZTabZl)
With .Cells(1)
.HorizontalAlignment = xlCenter
.NumberFormat = "0\.": .Font.Bold = True
If aktZTabZl > zBer.Row + ZlVers Then
.Value = .Offset(-1, 0) + 1
Else: .Value = 1
End If
End With
.Cells(2) = Me.Range(adQKzl).Cells(Target.Column)
.Cells(3) = Me.Range(adQVsp).Cells(Target.Row)
If Target Like noVal Then .Cells(4) = Target
End With
End If
Set zBer = Nothing: Set zBl = Nothing
End Sub
Gruß, Luc :-?
Anzeige

315 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige