Microsoft Office Forum [ www.Office-Fragen.de ] >> READONLY <<

Microsoft Office 2003-2019 => Excel => Thema gestartet von: FFMR am Januar 15, 2016, 09:07:52 Vormittag

Titel: Excel - Formular / Datenbank
Beitrag von: FFMR am Januar 15, 2016, 09:07:52 Vormittag
Guten Tag,

ich habe folgendes Problem.

Ich habe ein Formular z. B. Kann in Zeile A1 immer ein Jahr eingetragen werden (2013, 2014, 2015) in Zelle A2 Anzahl pro Köpfe (Zahl).

Dann habe ich eine weitere Tablle mit den Jahren A1 = 2013, B1 = 2014, C1 = 2015. In den Zeile A2,  B2, C2 soll die Personenzahl erfasst werden.

Jetzt soll, wenn in der ersten Tabelle das Jahr und die Anzahl der Personen für 2013 eingetragen wird, dieses in der anderen Tabelle entsprechen gespeichert werden.

Ist dieses umsetzbar?

Vielen Dank für die Mühen.
Titel: Antw: Excel - Formular / Datenbank
Beitrag von: gmg-cc am Januar 15, 2016, 10:10:39 Vormittag
Moin,

machbar ist das mit hoher Wahrscheinlichkeit und VBA. Für vernünftige Hilfe ist aber mehr Info, idealerweise eine Mustertabelle (*.xlsx) erforderlich.
Titel: Antw: Excel - Formular / Datenbank
Beitrag von: FFMR am Januar 15, 2016, 16:21:04 Nachmittag
Anbei die Excel-Datei zum besseren Verständnis.
Titel: Antw: Excel - Formular / Datenbank
Beitrag von: Herbert Grom am Januar 15, 2016, 17:43:16 Nachmittag
Hallo, (ein Name wäre natürlich schöner!)

probiers mal damit:

Sub Speichern()
   Dim iCol%
   iCol = Sheets("Tabelle2").Cells(1, Columns.Count).End(xlToLeft).Column + 1
   
   With Sheets("Tabelle2")
      .Range(.Cells(1, iCol), .Cells(2, iCol)).Value = Range(Cells(1, 1), Cells(2, 1)).Value
   End With
End Sub

Servus
Titel: Antw: Excel - Formular / Datenbank
Beitrag von: gmg-cc am Januar 15, 2016, 19:08:22 Nachmittag
Moin,

ich habe es so gelöst:

Option Explicit

Sub Schaltfläche2_Klicken()
   Dim Jahr As Integer, Anzahl As Integer
   Dim lCol As Integer, Dst As Range, SpDst As Variant
   
   Jahr = Range("A1")
   Anzahl = Range("A2")
   With Sheets("Tabelle2")
      lCol = .Cells(1, Columns.Count).End(xlToLeft).Column - 1
      Set Dst = .Range(.Cells(1, 1), .Cells(1, lCol))
      Set SpDst = Dst.Find(Jahr, LookIn:=xlValues)
      If Not SpDst Is Nothing Then SpDst.Offset(1, 0) = Anzahl
   End With
End Sub
Titel: Antw: Excel - Formular / Datenbank
Beitrag von: FFMR am Januar 17, 2016, 15:12:09 Nachmittag
Super, vielen Dank für eure Hilfe! Wirklich top  :)

Ich habe den zweiten Code bevorzugt.
Titel: Antw: Excel - Formular / Datenbank
Beitrag von: Herbert Grom am Januar 18, 2016, 08:51:43 Vormittag
Hallo,

da ich ja auch noch immer gerne etwas dazu lernen will, würde mich interessieren, was für Dich an dem 2. Code interessanter war.
Titel: Antw: Excel - Formular / Datenbank
Beitrag von: FFMR am Januar 18, 2016, 18:02:06 Nachmittag
Hallo!

Sehr gerne.

Im 2. Code habe ich einfach die Zellen "A1" und "A2" wieder gefunden. Ich sah dadurch eine höhere Wahrscheinlichkeit, da ich keine nennenswerten Kenntnisse zum Thema VBA mitbringe, den Code selbst weiter zu verwenden und anzupassen.

Leider ist mir dieses aber nicht so recht gelungen. Denn ich würde gerne das Formular wie im Anhang erweitern.

Wenn mir jemand noch mal weiterhelfen möchte, würde ich mich sehr freuen.

Schöne Grüße
Titel: Antw: Excel - Formular / Datenbank
Beitrag von: FFMR am Januar 21, 2016, 07:08:07 Vormittag
Okay. Scheint wohl mit zu großen aufwand verbunden zu sein.

Gibt es im Internet passende Litaritur zum Thema?
Titel: Antw: Excel - Formular / Datenbank
Beitrag von: Herbert Grom am Januar 22, 2016, 16:05:03 Nachmittag
Hallo,

soll bei einem neuen Jahr (z. B. 2016) die entsprechenden Angaben aus Tabelle1 in die Spalte D (2017 in Spalte E usw) der Tabelle2 kopiert werden?

Servus
Titel: Antw: Excel - Formular / Datenbank
Beitrag von: FFMR am Februar 15, 2016, 15:38:54 Nachmittag
Ne, das benötige ich nur für die drei vorgegebenen Jahre.

Aber das Eingabefeld in der Tabelle1 befindet sich an unterschiedlichen Stellen der Tabelle.