Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Daten von einer Tabelle in eine andere

Betrifft: Daten von einer Tabelle in eine andere von: Isabell
Geschrieben am: 21.08.2004 00:26:52


Hallo Exel Experten,

wenn ich im Tabellenblatt „Wocheneinsatzplan“ in den Zeilen 4,7,10,13,16,19,22,25,28,31, und 34 ein „k“ für krank, oder ein „u“ für urlaub eingebe, sollte dieser Eintrag unter dem Datum und der dazu gehörenden Person
(anhand des Namenskürzel, z.B in Zeile 6 ist das GW)
im Tabellenblatt „Daten“ auch unter diesen Datum und des Namenskürzel erscheinen.

Dieses sollte sofort nach der Eingabe geschehen, ohne irgend eine Schaltfläche zu tätigen.
Die Einträge im Tabellenblatt „Daten“ sollen auch dort stehen bleiben, wenn sich andere
Datumsangaben im Tabellenblatt „Wocheneinsatzplan“ befinden.
(Denn die ändern sich ja nach jeder Woche)

Hier ist meine Datei: https://www.herber.de/bbs/user/9896.xls

Oh man, ich hoffe einer macht sich die Mühe um mir damit zu helfen, da ich außer
Makros nichts von VBA verstehe.

Ich danke Euch

Gruß
Isabell


  


Betrifft: AW: Daten von einer Tabelle in eine andere von: Michi
Geschrieben am: 21.08.2004 10:21:49

Hallo Isabell,
probier mal in der Beispieldatei, ob es das war was du suchst.

https://www.herber.de/bbs/user/9898.xls

Du machst die Eingaben in den gewünschten Zeilen 4,7 usw. im Blatt "Wocheneinsatzplan" und danach werden im Datenblatt die entsprechenden Eintragungen automatisch erzeugt.

Gruss
Michi


  


Betrifft: AW: Daten von einer Tabelle in eine andere von: Michi
Geschrieben am: 21.08.2004 10:42:32

Übrigens, falls es dich interessiert:

der Code besteht aus zwei Prozeduren:
Wird im Blatt "Wocheneinsatzplan" das Worksheet_Change-Ereignis ausgelöst (also der Nutzer verändert den Inhalt des Tabellenblatts) wird folg. Prozedur durchlaufen:



Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    
    
Dim zeilen As Long
    
Dim spalten As Long
    
Dim zelle As Range
    
Dim i As Long
    
Dim t As Integer
    
    zeilen = Target.Rows.Count - 1
    spalten = Target.Columns.Count - 1
    
    
For i = 0 To zeilen
        
For t = 0 To spalten
            
Set zelle = ActiveSheet.Cells(Target.Rows(i + 1).Row, Target.Columns(t + 1).Column)
            
If zelle.Row Mod 3 = 1 And zelle.Column > 2 And zelle.Column < 10 Then
                
Call Eintragung _
                                 (Worksheets(
"Daten"), _
                                 zelle.Value, _
                                 ActiveSheet.Cells(zelle.Row + 2, 1), _
                                 ActiveSheet.Cells(2, zelle.Column))
            
End If
        
Next t
    
Next i
    
    
End Sub 


Aus dieser Prozedur wird heraus wird dann die folg. Prozedur aufgerufen:


Option Explicit

Public Sub Eintragung(ByRef ws As Worksheet, ByVal strInhalt As StringByVal strNamenskuerzel As StringByVal dDatum As Date)
    
    
'Diese Werte ggf. nach evtl. Änderung der Tabellenblattstruktur von Blatt "Daten" anpassen
    Const Titelzeile = 4
    
Const StartSpalte = 4
    
Const SpalteDatumswert = 1
    
Dim Startdatum As Date
    
Dim Zeilennummer As Long
    
Dim i As Integer
    
    
'Erstes Datum im Datensheet ermitteln
    Startdatum = ws.Cells(Titelzeile + 1, SpalteDatumswert)
    
    
'Zeilennummer für Datumszeile ermitteln
    If dDatum - Startdatum >= 0 Then
        Zeilennummer = Titelzeile + dDatum - Startdatum + 1
    
Else
        MsgBox "Bitte Datum >= " & Startdatum & " verwenden.", vbOKOnly + vbExclamation, "Meldung"
        
Exit Sub
    
End If
    
    
'Spalte des Namenskuerzels finden
    For i = StartSpalte To ws.Range(ws.Cells(Titelzeile, 255), ws.Cells(Titelzeile, 255)).End(xlToLeft).Column
        
If LCase(strNamenskuerzel) = LCase(ws.Cells(Titelzeile, i)) Then
            ws.Cells(Zeilennummer, i) = UCase(strInhalt): 
Exit For
        
End If
    
Next i
    
End Sub 




Gruss
Michi


  


Betrifft: AW: Daten von einer Tabelle in eine andere von: Franz_DA
Geschrieben am: 21.08.2004 10:31:04

Hallo Isabell,

Du kannst es recht einfach lösen, in dem Du wie folgt vorgehst:

Zunächst einmal würde ich Dir raten,die Reihenfolge der Namen im Blatt Daten mit der Reihenfolge der Namen im Blatt Wocheneinsatzplan anzupassen... ?!?
Ich habe jetzt aber mal die Lösung auf den Ist-Zustand bezogen .. außerdem habe ich erst ab dem 28.7.angefangen.. richtig so?:

Trage einfach in die Zelle D214 (SB für den 27.8.) des Blattes "Daten" folgende Formel ein :
=WENN(ODER((!Wocheneinsatzplan:C27="K"),(!Wocheneinsatzplan:C27="U"));=(!Wocheneinsatzplan:C27),0)



Da ich 'am Wochenende' zu Hause bin und kein Excel hier installiert habe, offe ich aus dem Kopf heraus die richtig formatierte Formel Dir gepostet zu haben.

Dir ein schönes Wochenende.

Alles Liebe aus Darmstadt,
franz


  


Betrifft: AW: Daten von einer Tabelle in eine andere von: Michi
Geschrieben am: 21.08.2004 10:52:16

"Trage einfach in die Zelle D214 (SB für den 27.8.) des Blattes "Daten" folgende Formel ein :
=WENN(ODER((!Wocheneinsatzplan:C27="K"),(!Wocheneinsatzplan:C27="U"));=(!Wocheneinsatzplan:C27),0)"

Abgesehen davon, dass die Formelsyntax falsch ist, was zuggegebenermassen ohne Austesten schnell passieren kann, geht das nicht, weil sich die Daten im Wocheneinsatzplan von Woche zu Woche ändern und sich demzufolge auch die Formelwerte im Datensheet entsprechend ändern. Ist in der Form m. E. nicht über Zellbezüge lösbar.

Gruss
Michi


 

Beiträge aus den Excel-Beispielen zum Thema "Daten von einer Tabelle in eine andere"