Zellbezug einer Vorlage auf unterschiedliche Zellen beziehen
#1
Hallo zusammen,
ich habe folgendes Problem und wollte hier mal nach einem Lösungsansatz fragen.

Ich habe eine Excel 2007 Datei die folgende Funktion aufweist:

Die erste Mappe ist eine Namesliste mit zugehörigen Daten (zb GebDat.).
    A           B
1  Peter    2007
2  Pita      2008

usw.
Von einer xtlm-Datei wird dann per VBA von allen Namen in der Liste jeweils eine Tabelle in der Datei erstellt. Die Tabellen bennen sich dann automatisch nach dem entsprechenden Namen.

Jetzt will ich, dass in einer Zelle der Vorlage eine Formel automatisch das zugehörige GebDatum von dem entsprechenden Namen in die automatisch generierte Mappe erstellt.
Wenn ich in der Zelle der Vorlage folgende Formel eingebe:
=Namenliste!B1
...wird natürlich in jeder automatisch generierten Tabelle der Wert B1 eingetragen.
Ich will jetzt, dass in die erste automatisch generierte Tabelle mit dem Namen "Peter" in einer Zelle der Wert von B1 eingetragen wird, in die zweite automatisch generierten Tabelle mit dem Namen "Pita" in einer Zelle der Wert von B2 eingetragen wird usw...
Hat jemand eine Idee.
Vielen Dank schonmal und Grüße
Top
#2
Hallo,

(04.07.2017, 01:44)Laddat schrieb: Von einer xtlm-Datei wird dann per VBA von allen Namen in der Liste jeweils eine Tabelle in der Datei erstellt. Die Tabellen bennen sich dann automatisch nach dem entsprechenden Namen.

Jetzt will ich, dass in einer Zelle der Vorlage eine Formel automatisch das zugehörige GebDatum von dem entsprechenden Namen in die automatisch generierte Mappe erstellt.

poste bitte dieses Makro, dann lässt sich das sicher einfach mit einbauen.

Gruß Uwe
Top
#3
Hallo nochmal,
anbei das Macro:

Sub FuegeBlaetterMitNamenEin()
Dim Bereich As String
Dim Zelle As Range
Dim Tabelle As Worksheet
Bereich = "a2:a30"
With ActiveWorkbook
For Each Zelle In ActiveSheet.Range(Bereich).Cells
 Set Tabelle = .Sheets.Add(After:=.Worksheets(Sheets.Count), Type:="C:\Users\xxx\AppData\Roaming\Microsoft\Templates\xxx.xltm")
 Tabelle.Name = Zelle.Text
Next Zelle
End With
End Sub
Top
#4
Hallo,
Sub FuegeBlaetterMitNamenEin()
 Dim Zelle As Range
 With ActiveWorkbook
   For Each Zelle In .ActiveSheet.Range("a2:a30").Cells
     With .Sheets.Add(After:=.Worksheets(.Worksheets.Count), Type:="C:\Users\xxx\AppData\Roaming\Microsoft\Templates\xxx.xltm")
       .Name = Zelle.Text
       .Range("B3").Value = Zelle.Offset(0, 1).Value
     End With
   Next Zelle
 End With
End Sub
Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Laddat
Top
#5
Hallo Kuwer,
vielen Dank, das hat soweit sehr gut geklappt.

Kannst du bitte erläutern (nur kurz) wie die Zeile zustande kommt: .Range("B3").Value = Zelle.Offset(0, 1).Value

Vielen Dank
Top
#6
Hallo,

(04.07.2017, 09:09)Laddat schrieb: Kannst du bitte erläutern (nur kurz) wie die Zeile zustande kommt: .Range("B3").Value = Zelle.Offset(0, 1).Value

Die Zelle B3 des gerade erstellten Tabellenblattes erhält den Wert von der um 0 Zeilen und 1 Spalte nach rechts versetzten Zelle ausgehend von der Zelle, auf welche die Variable Zelle verweist.

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Laddat
Top
#7
Vielen Dank Uwe,

dank deiner Hilfe muss ich jetzt nicht 500 Namen per Hand eintippen/schreiben und die 1000m Zeiten eintragen. Denn die Excellisten der Klassen sind schon vorhanden. Lasst die Bundesjugenspiele beginnen :18: 

Gruß Laddat
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste