Registriert seit: 12.07.2017
Version(en): 97-2003
Hallo zusammen!
Habe eine Arbeitsmappe mit 12 Blätter(Monate). Jetzt müsste ich von jedem Blatt den Wert einer Zelle in eine andere Arbeitsmappe übertragen, aber immer in eine andere Spalte. Will aber nicht jede einzelne Zelle kopieren, aber sollte doch so einfach wie möglich sein damit ich als Anfänger das auch verstehe.
z.B.:
AMx-ABJännerC3 = AMy-Zusammenfassung H2
AMx-ABFebruarC3 = AMy-Zusammenfassung I3
AMx-ABMärzC3 = AMy-Zusammenfassung J3...
Vielen Dank für Eure Hilfe!
Anton
Registriert seit: 14.04.2017
Version(en): 2016/19
14.07.2017, 16:15
(Dieser Beitrag wurde zuletzt bearbeitet: 14.07.2017, 16:17 von echo.)
Hallo Anton
mal schauen:
TEXT(("1."&ZEILE(A1));"MMMM")
erzeugt beim runter kopieren Jaunar - Dezember
den Rest für den kompletten Bezug dazu
'AMx-AB"&TEXT(("1."&ZEILE(A1));"MMMM")&"'!C3"
Indirekt macht aus dem Text einen Bezug auf die Tabellenblätter,zum runter kopieren
=INDIREKT("'AMx-AB"&TEXT(("1."&ZEILE(A1));"MMMM")&"'!C3")
Gruß Holger
Registriert seit: 12.07.2017
Version(en): 97-2003
Hallo Holger!
Danke für Deinen Versuch mir zu helfen, aber ich verstehe leider nur Bahnhof! Vielleicht kannst du mir direkt die Formel aufschreiben wenn ich dir noch einmal die richtigen Namen meiner Arbeitsmappen und Blätter schreibe? Also:
Arbeitsmappen: Anton Karl Franz Norbert .....
Arbeitsblätter in jeder Mappe: Jänner bis Dezember immer Spalte AI Zeile 9
den Inhalt dieser Zelle von z.B.: Anton will ich in:
Arbeitsmappe: Urlaubsliste
Arbeitsblatt:Tabelle 1 Zellen sind so benannt:
B1: Jänner C1:Februar bis M1:Dezember
A2: Anton
A3: Karl
A4: Franz
in B2 bis M2 will ich den Inhalt von AI9
Vielen Dank für Deine Hilfe!
Anton
Registriert seit: 12.03.2016
Version(en): Excel 2003
Hallo
ich denke die Formel müsste sich so, in die Matrix einsetzen lassen. Einfach mal ausprobieren und auf die restlichen Monate bis Dezember erweitern.
Der Text "Mappe" muss nachher durch "Anton.xlsx" usw. ersetzt werden. Würde mich freuen wenn es klappt.
Januar Februar
Anton =[Mappe1]Jänner!$AI$9 =[Anton.xlsx1]Februar!$AI$9
Karl =[Mappe1]Jänner!$AI$9 =[Karl.xlsx]Februar!$AI$9
Franz =[Mappe1]Jänner!$AI$9 =[Franz.xlsx]Februar!$AI$9
mfg Gast 123
Registriert seit: 12.07.2017
Version(en): 97-2003
Hallo Gast123!
Das mit dem weiterkopieren oder aut. ausfüllen funktioniert so nicht. Da muss ich für alle Mitarbeiter jede Zelle einzeln eingeben, das will ich mir ersparen. Vielleicht kennt wer eine andere Möglichkeit?
Gruß Anton
Registriert seit: 12.03.2016
Version(en): Excel 2003
Hallo
auch das sollte kein Problem sein. den unteren Code in ein Modulblatt kopieren, einen Normalen Button einfügen (Kein AktiveX Steuerelement !!) und das Makro zuweisen. Dann sollte es mit etwas Eigenarbeit klappen.
Bei der Variable
Mt_Mappe = Mitarbeiter Arbeitsmappe müssen die richtigen Dateinamen eingetragen werden. Es können beliebig viele Mitarbeiter sein, der Code wird dann nur laenger. Der Befehl GoSub fill verarbeitet jeden Mitarbeiter einzeln. Kleine Besonderheit: Wenn man die Datei Endung .xlsx wie gewohnt direkt anfügt klappt es offenbar nicht, dort sollte eine Leerstelle zum Datei Text sein! Warum das so sein muss weiss ich nicht.
Ich nahem an das die Zusammenfassung eine gleichlautende Überschriftszeile für die Monats Tabellen in der Mitarbeiter Mappe hat. Wenn die Überschrift mit dem Tabellen Namen übereinstimmt klappt die Formel beim einfügen per Vba. Vorausgesetzt es soll immer die gleiche Zelle "AI9" ausgelesen werden.
Einfach mal ausprobieren ob es klappt. Sonst korrigieren wir es solange bis es klappt.
mfg Gast 123
Code:
Sub Externe_Formel_ausfüllen()
Dim j As Integer, MTA As String
Dim z As Integer: z = 2 '1.Zeile
'Hier die Mitarbeiter Datei Namen angeben
Mt_Mappe = "[Anton .xlsx]": GoSub fill
Mt_Mappe = "[Karl .xlsx]": GoSub fill
Mt_Mappe = "[Franz .xlsx]": GoSub fill
Exit Sub
'****************************************
fill: 'Unterprogramm zum ausfüllen:
'12 Monate beginnend mit Spalte 2 bis 13
For s = 2 To 13
'Monat aus Überschrift laden
Monat = Cells(1, s).Value
'externe Formel aus Mappe, Monat und Zelle AI9
Cells(z, s).FormulaLocal = "='" & Mt_Mappe & Monat & "'!$AI$9"
Next s
z = z + 1
Return
End Sub