Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Zelle kopieren mit Makro
#11
Ich habe es Dir mit einem sehr ausführlichen DIM-Kopf programmiert (insofern man das bei einem solchen Mini-Progrämmchen sagen kann)
So kannst Du viele Parameter sehr einfach einstellen (welche Zeile, welche Spalte soll der erste Eintrag der Informationen stehen).



Code:
Sub Makro1()
  'Bedingung Start ist immer in Zeile 4
  'Änderung der "Nr. Rg" Zelle ist Initiator für neue Berechnung - alle anderen Nr.Rg Zellen sind leer
  '1. BestellDatum ist in Zeile 4
  '1. Rechnungsdatum ist in Zeile 5
  Dim StartZelle As String
  Dim Startzeile As Integer
  Dim Bestelldatum_Zeile As Integer
  Dim RechungsDatum_Zeile As Integer
  Dim AktuelleZeile As Integer
  Dim Kundenname As String
  Dim AnzahlTage_Spalte As String
  Dim Rechnungsdatum_Spalte As String
  Dim BestellDatum_Spalte As String
  Dim SheetName As String
 
  StartZelle = "C4"
  Kundenname = "A"
  AnzahlTage_Spalte = "G"
  Rechungsdatum_Spalte = "D"
  BestellDatum_Spalte = "F"
  Startzeile = 4
  Bestelldatum_Zeile = 4
  RechnungsDatum_Zeile = 4
  AktuelleZeile = Startzeile
  SheetName = "Tabelle1"
 
 
     
  Rechnungsnummer_neu = Worksheets(SheetName).Range(StartZelle).Value
  Do Until Worksheets(SheetName).Range(Kundenname & AktuelleZeile).Value = ""
                        'Abbruchbedingung Kundenzelle A... ist leer
        Worksheets(SheetName).Range(AnzahlTage_Spalte & AktuelleZeile).Select
        If Worksheets(SheetName).Range(Rechungsdatum_Spalte & AktuelleZeile).Value <> "" Then
                        'Wenn es einen neuen RechnungsDatumsEintrag gibt, dann nimm die neue Rechnungsdatumszeile
        RechnungsDatum_Zeile = ActiveCell.Row()
        NaechsteZeile = RechnungsDatum_Zeile + 1
        Worksheets(SheetName).Range(AnzahlTage_Spalte & AktuelleZeile).Value = Worksheets(SheetName).Range(Rechungsdatum_Spalte & NaechsteZeile).Value - Worksheets(SheetName).Range(BestellDatum_Spalte & Bestelldatum_Zeile).Value
                         'BestellDatum_Zeile = BestellDatum_Zeile + 1 'Neu
        Else
        Worksheets(SheetName).Range(AnzahlTage_Spalte & AktuelleZeile).Value = Worksheets(SheetName).Range(Rechungsdatum_Spalte & RechnungsDatum_Zeile).Value - Worksheets(SheetName).Range(BestellDatum_Spalte & Bestelldatum_Zeile).Value
        End If
          Inc Bestelldatum_Zeile
          Inc AktuelleZeile
  Loop
End Sub
Function Inc(ByRef i As Integer)
    i = i + 1
End Function



Gruß
Statler
[-] Folgende(r) 1 Nutzer sagt Danke an Statler für diesen Beitrag:
  • smtat
Antworten Top
#12
Wenn Du die jeweils erste Zeile mit den Tagen leer haben möchtest mußt Du nur ein   '     in folgende Zeile vor dem Minus-Zeichen einfügen

  Worksheets(SheetName).Range(AnzahlTage_Spalte & AktuelleZeile).Value = Worksheets(SheetName).Range(Rechungsdatum_Spalte & NaechsteZeile).Value ' - Worksheets(SheetName).Range(BestellDatum_Spalte & Bestelldatum_Zeile).Value

Gruß
Statler
Antworten Top


Gehe zu:


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