Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1320to1324
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bestimmte statt letzter Zeile

Bestimmte statt letzter Zeile
19.07.2013 10:46:39
Christian
Hallo liebe VBA-Gemeinde,
ich habe ein kleines Problem mit nem Code.
Und zwar geht es darum, Daten aus einer Tabelle (ActiveWorksheet) in ein Formular (Worksheet "DOC") zu übertragen (gleiches Workbook).
Ich habe jetzt folgenden Code:
  • Private Sub CommandButton3_Click()
    Worksheets("DOC").Range("D2").ClearContents
    Worksheets("DOC").Range("C4:D4").ClearContents
    Worksheets("DOC").Range("C6:D6").ClearContents
    Worksheets("DOC").Range("C8:D8").ClearContents
    Worksheets("DOC").Range("C10:D10").ClearContents
    Worksheets("DOC").Range("C12:D12").ClearContents
    Worksheets("DOC").Range("C15:D29").ClearContents
    Worksheets("DOC").Range("D30").ClearContents
    Worksheets("DOC").Range("C32:D32").ClearContents
    Worksheets("DOC").Range("C34:D34").ClearContents
    Worksheets("DOC").Range("C36:D36").ClearContents
    Worksheets("DOC").Range("C38:D38").ClearContents
    Dim wsKopie As Worksheet, wsBasis As Worksheet, iLetzte As Long
    Dim wbKopie As Workbook
    Set wsBasis = ActiveSheet
    Set wsKopie = ActiveWorkbook.Sheets("DOC")
    iLetzte = wsBasis.Cells(wsBasis.Rows.Count, 3).End(xlUp).Row
    wsKopie.Range("D2").Value = wsBasis.Range("A" & iLetzte)
    wsKopie.Range("C4:D4").Value = wsBasis.Range("D" & iLetzte)
    wsKopie.Range("C6:D6").Value = wsBasis.Range("E" & iLetzte)
    wsKopie.Range("C8:D8").Value = wsBasis.Range("F" & iLetzte)
    wsKopie.Range("C10:D10").Value = wsBasis.Range("G" & iLetzte)
    wsKopie.Range("C12:D12").Value = wsBasis.Range("H" & iLetzte)
    wsKopie.Range("C32:D32").Value = wsBasis.Range("K" & iLetzte)
    wsKopie.Range("C34:D34").Value = wsBasis.Range("L" & iLetzte)
    wsKopie.Range("C36:D36").Value = wsBasis.Range("M" & iLetzte)
    wsKopie.Range("C38:D38").Value = wsBasis.Range("C" & iLetzte)
    End Sub
    

  • Dieser wird über ein Button in einem Userform gestartet.
    Jetzt zieht mir der Code immer die Daten der letzten Zeile aus der Tabelle in das Formular.
    Im Userform existiert eine TextBox, in der eine Zahl eingegeben werden kann.
    Die einzugebene Zahl entspricht dabei einer fortlaufenden Nummer im der Tabelle.
    Ich möchte nun erreichen, dass mir der Code die Zeile, die im Userform eingegeben wird, in das Formular kopiert. Kann ich die Definition iLetzte irgendwie so umgestalten, dass diese variabel wird?
    Optimal wäre auch, falls die fortlaufende Nummer nicht existiert eine Fehlermeldung im Userform ausgegeben und der Code nicht gestartet wird.
    Vielen Dank schonmal für Eure Hilfe.
    MfG
    Chris

    3
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Bestimmte statt letzter Zeile
    19.07.2013 10:55:42
    Hajo_Zi
    Hallo Chris,
    Schreibe
    If Textbox1"" Then
    If Isnumeric(Textbox1) Then
    iLetzte = Textbox1
    else
    iLetzte = wsBasis.Cells(wsBasis.Rows.Count, 3).End(xlUp).Row
    End if
    end if

    AW: Bestimmte statt letzter Zeile
    19.07.2013 14:00:14
    Rudi
    Hallo,
    Private Sub CommandButton3_Click()
    Dim wsKopie As Worksheet, wsBasis As Worksheet, iLetzte As Long
    Dim wbKopie As Workbook
    Set wsBasis = ActiveSheet
    Set wsKopie = ActiveWorkbook.Sheets("DOC")
    If IsError(Application.Match(TextBox1, wsBasis.Columns(1), 0)) Then
    MsgBox "Nr. nicht vorhanden!", vbOKOnly, "FEHLER!!!"
    Else
    iLetzte = Application.Match(TextBox1, wsBasis.Columns(1), 0)
    With Worksheets("DOC")
    .Range("D2").ClearContents
    .Range("C4:D4").ClearContents
    .Range("C6:D6").ClearContents
    .Range("C8:D8").ClearContents
    .Range("C10:D10").ClearContents
    .Range("C12:D12").ClearContents
    .Range("C15:D29").ClearContents
    .Range("D30").ClearContents
    .Range("C32:D32").ClearContents
    .Range("C34:D34").ClearContents
    .Range("C36:D36").ClearContents
    .Range("C38:D38").ClearContents
    End With
    With wsKopie
    .Range("D2").Value = wsBasis.Range("A" & iLetzte)
    .Range("C4:D4").Value = wsBasis.Range("D" & iLetzte)
    .Range("C6:D6").Value = wsBasis.Range("E" & iLetzte)
    .Range("C8:D8").Value = wsBasis.Range("F" & iLetzte)
    .Range("C10:D10").Value = wsBasis.Range("G" & iLetzte)
    .Range("C12:D12").Value = wsBasis.Range("H" & iLetzte)
    .Range("C32:D32").Value = wsBasis.Range("K" & iLetzte)
    .Range("C34:D34").Value = wsBasis.Range("L" & iLetzte)
    .Range("C36:D36").Value = wsBasis.Range("M" & iLetzte)
    .Range("C38:D38").Value = wsBasis.Range("C" & iLetzte)
    End With
    End If
    End Sub
    

    Gruß
    Rudi

    Anzeige
    AW: Bestimmte statt letzter Zeile
    23.07.2013 10:00:08
    Christian
    Hallo ihr,
    vielen Dank für Eure Hilfe, hat geklappt :)
    MfG Chris

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige