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

Zeilen in Tabelle einfügen

Forumthread: Zeilen in Tabelle einfügen

Zeilen in Tabelle einfügen
26.01.2004 15:31:19
Haweka
Ich habe folgendes Problem:
Es gibt zwei Jahreszahlen, z.B. 2003 und 1975, die je nach Aufgabenstellung verschieden sein können. Diese stehen in Spalte A.
Nun möchte ich alle dazwischen liegende Jahre, d.h. 1976,1977 etc. automatisch zwischen die beiden vorgegebenen Jahreszahlen einfügen. Gleichzeitig soll in Spalte B eine Berechnung durchgeführt werden, die auf der in Spalte A eingefügten Jahreszahl ind der gleichen Zeile durchgeführt wird. Ich hoffe, ich habe mich verständlich ausgedrückt.
Haweka
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen in Tabelle einfügen
26.01.2004 16:07:39
Josef Ehrensberger
Hallo ?
Wie soll dasanze passieren - Makro?
Welche Berechnung soll in Spalte B durchgefürt werden?
Gruß Sepp
AW: Zeilen in Tabelle einfügen
26.01.2004 21:38:10
haweka
Es handelt sich um eine Berechnung, in dem ausgehend vom Ausgangsjahr (2003) der abgezinste Wert berechnet wird.Das hätte ich mit einer wenn-dann Abfrage gemacht.
Haweka
Anzeige
AW: Zeilen in Tabelle einfügen
26.01.2004 22:29:40
Josef Ehrensberger
Hi,
so ganz verstehe ich nicht was Du willst, aber
ein Makro als versuch.


Sub JahreEinfügen()
Dim start As String
Dim ende As String
Dim intC As Integer
   Do
   start = InputBox("Bitte geben Sie das Startjahr ein." & vbLf & _
      "Die Jahreszahl muss vierstellig sein!", "Start", CStr(Year(Date)))
      If start = "" Then Exit Sub
      If Not IsNumeric(start) Then start = 0
   Loop While Len(start) <> 4 Or CInt(start) < 1900 Or CInt(start) > 3999
   Do
   ende = InputBox("Bitte geben Sie das Endjahr ein." & vbLf & _
      "Die Jahreszahl muss vierstellig sein!", "Ende", CStr(Year(Date) - 10))
      If ende = "" Then Exit Sub
      If Not IsNumeric(ende) Then ende = 0
   Loop While Len(ende) <> 4 Or CInt(ende) < 1900 Or CInt(ende) > 3999 Or CInt(ende) >= start
start = CInt(start)
ende = CInt(ende)
   With Sheets(1) 'Tabelle anpassen
   .Range("A2:B1000").ClearContents
   'Bereich "A2:B1000" löschen
      For intC = 2 To (start - ende) + 2
      .Cells(intC, 1) = (start + 2) - intC
      .Cells(intC, 2).FormulaR1C1 = "=IF(RC[-1]>YEAR(TODAY())-10,""X"","""")"
      'Formel für Spalte "B" nur als Beispiel
      'Für Deine Formel am besten den Makrorekorder benutzen!
      Next
   End With
End Sub

     Code eingefügt mit Syntaxhighlighter 2.5

Gib bitte Bescheid, egal ob positiv oder negativ.
Gruß Sepp
Anzeige
AW: Zeilen in Tabelle einfügen
27.01.2004 09:26:28
Haweka
Hallo Sepp,
vielen Dank für die Hilfe,. Leider funktioniert das Ding bei mir nicht, wahrscheinlich bin ich zu blöd dazu.
UNter dem Untenstehenden Link findest du die test-Datei.
Vielleicht kannst sie noch mal anschauen
https://www.herber.de/bbs/user/3230.xls

Gruß
Haweka
Anzeige
AW: Zeilen in Tabelle einfügen
28.01.2004 10:24:03
Haweka
Hallo Sepp,
Dein Makro funktioniert hervorragend. Ich habe schon meine Formel eingepasst und auch das läuft. Jetzt habe ich nur noch eine bzw. zwei Fragen:
1)Wie kann ich die Eingabe so verändern, dass für den Datumsanfangs- und Endwert eine Zahl aus einem anderen Tabellenblatt automatisch übernommen wird.
2) Wie kann ich die Summe aus einer automatisch generierten Spalte erzeugen, die ja immer unterschiedlich viele Zeilen hat?
Danke
Hans
Anzeige
AW: Zeilen in Tabelle einfügen
28.01.2004 11:43:43
Josef Ehrensberger
Hallo!
Freud mich das es funktioniert!
Hier der Code, angepasst nach deinen wünschen.


Sub JahreEinfügen()
Dim start As String
Dim ende As String
Dim intC As Integer
Dim rngAdr As Range
'   Do
'   start = InputBox("Bitte geben Sie das Startjahr ein." & vbLf & _
'      "Die Jahreszahl muss vierstellig sein!", "Start", CStr(Year(Date) - 1))
'      If start = "" Then Exit Sub
'      If Not IsNumeric(start) Then start = 0
'   Loop While Len(start) <> 4 Or CInt(start) < 1900 Or CInt(start) > 3999
'   Do
'   ende = InputBox("Bitte geben Sie das Endjahr ein." & vbLf & _
'      "Die Jahreszahl muss vierstellig sein!", "Ende", CStr(Year(Date) - 10))
'      If ende = "" Then Exit Sub
'      If Not IsNumeric(ende) Then ende = 0
'   Loop While Len(ende) <> 4 Or CInt(ende) < 1900 Or CInt(ende) > 3999 Or CInt(ende) >= start
'start = CInt(start)
'ende = CInt(ende)
'##############################################################################
start = Sheets("TabelleMitStartwert").Range("A1") 'Tabelle ung Bereich anpassen
ende = Sheets("TabelleMitEndWert").Range("A1") 'Tabelle ung Bereich anpassen
'##############################################################################
   With Sheets(1) 'Tabelle anpassen
   .Range("A3:B1000").ClearContents
   'Bereich "A2:B1000" löschen
      For intC = 3 To (start - ende) + 3
      .Cells(intC, 1) = (start + 3) - intC
      .Cells(intC, 2).FormulaR1C1 = "=IF(RC[-1]>YEAR(TODAY())-10,""X"","""")"
      'Formel für Spalte "B" nur als Beispiel
      'Für Deine Formel am besten den Makrorekorder benutzen!
      Next
      '#######################################################################
      'Ich nehme an, das Die Formel für die Summe unter die Zellen mit
      'deinen Berechnungen soll, sonst Zeile bzw. Spalte anpassen
      Set rngAdr = Range(.Cells(3, 2), .Cells(intC - 1, 2))
      'Adresse des Bereichs ermitteln
      .Cells(intC, 2).FormulaLocal = "=SUMME(" & rngAdr.Address & ")"
      'oder
      .Cells(intC, 3).Value = WorksheetFunction.Sum(strAdr)
      'oder
      .Range("D5").Value = WorksheetFunction.Sum(strAdr)
      'jenachdem wo die Summe stehen sol
      '#######################################################################
   End With
End Sub

     Code eingefügt mit Syntaxhighlighter 2.5

Gruß Sepp
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige