Anzeige
Archiv - Navigation
1656to1660
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
Auslesen einer bestimmten Zeile
20.11.2018 19:05:38
Günther
Hallo zusammen,
ich stecke (mal wieder) in einem kleinen Problem und hoffe hier kann mir jemand helfen.
Ich möchte auf Knopfdruck eine bestimmte Zeile auswählen und die Werte daraus auslesen, komme aber auf keine Lösung.
Ziel bzw. meine Idee:
Beim Betätigen einer Schaltfläche soll sich ein Eingabefenster öffnen in dem die gewünschte Zeile ausgewählt werden kann, beispielsweise die Zeile 5. Nur die in dieser Zeile enthaltenen Werte (von A5 bis D5) sollen dann in der Funktion verwendet werden. In meinem Fall sollen diese dann in eine andere Tabelle kopiert werden. Letzteres habe ich bereits realisiert, lediglich die Auswahl bereitet mir Probleme.
Falls jemand dazu eine Idee hat würde ich mich sehr freuen,
Gruß,
Günther

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Application.InputBox
20.11.2018 19:11:35
CitizenX
Hi,
schau dir mal Application.InputBox an..
VG
AW: Application.InputBox
21.11.2018 08:55:41
Günther
Hallo CitizenX,
danke für den Hinweis, ich hab dazu etwas gelesen aber ich werde noch nicht ganz schlau daraus. _ Mein Code sieht aktuell etwa so aus:

Sub Beispiel()
Dim wkbQuelle As Workbook, wkbZiel As Workbook, wkb As Workbook
Dim rngFreieZelle As Range
Dim strDateiname As String, strPfad As String
Dim bolOffen As Boolean
On Error GoTo Fin
strDateiname = "Beispiel.xlsx"
strPfad = "D:\Beispiel\"
For Each wkb In Workbooks
If UCase(wkb.Name) = UCase(strDateiname) Then
bolOffen = True
Exit For
End If
Next
If Not bolOffen Then Workbooks.Open strPfad & strDateiname
Set wkbZiel = Workbooks(strDateiname)
Set wkbQuelle = ThisWorkbook
With wkbZiel.Sheets("Sheet1")
Set rngFreieZelle = .Range("A" & .Rows.Count).End(xlUp).Offset(1, 0)
End With
wkbQuelle.Sheets("Tabelle1").Range("A1").Copy
rngFreieZelle.PasteSpecial (xlPasteValuesAndNumberFormats)
Application.CutCopyMode = False
Application.DisplayAlerts = False
Workbooks("Beispiel.xlsx").Close SaveChanges:=True
Application.DisplayAlerts = True
Fin:
If Err.Number  0 Then MsgBox "Fehler: " & _
Err.Number & " " & Err.Description
End Sub
Was er macht: Er öffnet eine bestimmte Excel Tabelle (die Beispiel.xlsx) und kopiert dann den Inhalt der Zelle A1 aus der vorher bereits geöffneten Tabelle in die nächste freie Zelle der Spalte A in der Beispiel.xlsx vor er diese speichert und direkt wieder schließt.
Meine Absicht jetzt ist jetzt nicht die Zelle A1 fest im Code zu definieren sondern abhängig von der Eingabe in einer Eingabebox zu gestalten. Mit der Eingabe (1,2,3...) soll dann die entsprechende Zeile ausgewählt und entsprechend anstelle von A1 (oder B1, C1 usw. an anderen Stellen in meinem ganzen Code) immer A2 oder welche Spalte auch immer eingetragen wird verwendet werden.
Ich hoffe meine Erklärung ist etwas verständlich geworden.
Gruß,
Günther
Anzeige
AW: Application.InputBox
21.11.2018 11:10:38
Bernd
Servus Günther,
"Mit der Eingabe (1,2,3...) soll dann die entsprechende Zeile ausgewählt und entsprechend anstelle von A1 ... immer A2 oder welche Spalte auch immer eingetragen wird verwendet werden."
what?! Ich verstehe nur Bahnhof!
Meinst du, dass die komplette Zeile aus wkbQuelle.Sheets("Tabelle1").Range("A1").Copy
in die Tabelle rngFreieZelle.PasteSpecial (xlPasteValuesAndNumberFormats) übernommen werden soll?
Dann probier es mal so:
Sub Beispiel()
Dim wkbQuelle As Workbook, wkbZiel As Workbook, wkb As Workbook
Dim rngFreieZelle As Range
Dim strDateiname As String, strPfad As String
Dim bolOffen As Boolean
 Dim Zeile As Long
 On Error GoTo Fin
strDateiname = "Beispiel.xlsx"
strPfad = "D:\Beispiel\"
For Each wkb In Workbooks
If UCase(wkb.Name) = UCase(strDateiname) Then
bolOffen = True
Exit For
End If
Next
If Not bolOffen Then Workbooks.Open strPfad & strDateiname
Set wkbZiel = Workbooks(strDateiname)
Set wkbQuelle = ThisWorkbook
With wkbZiel.Sheets("Sheet1")
Set rngFreieZelle = .Range("A" & .Rows.Count).End(xlUp).Offset(1, 0)
End With
     Zeile = InputBox("Bitte die zu kopierende Zeile eingeben:", "Zeile eingeben", 1)
wkbQuelle.Sheets("Tabelle1").Rows(Zeile).Copy
     rngFreieZelle.PasteSpecial (xlPasteValuesAndNumberFormats)
Application.CutCopyMode = False
Application.DisplayAlerts = False
Workbooks("Beispiel.xlsx").Close SaveChanges:=True
Application.DisplayAlerts = True
Fin:
If Err.Number  0 Then MsgBox "Fehler: " & _
Err.Number & " " & Err.Description
End Sub
Grüße, Bernd
Anzeige
AW: Application.InputBox
21.11.2018 15:00:29
Günther
Hallo Bernd,
entschuldige falls ich es nicht richtig ausgedrückt habe. Die Zelle, welche kopiert werden soll (wkbQuelle.Sheets("Tabelle1").Range("A1").Copy) ist momentan in meinem Code ja fest definiert.
Die einzelne Zeile, nicht aber die Spalte, möchte ich aber nicht fest definiert haben sondern durch die Eingabe dann wählen können.
Also wenn ich dann in der Zeilenauswahl "1" eingebe wird auch A1 kopiert, wenn ich 5 eingebe wird A5 kopiert und wenn ich 123 eingebe wird A123 kopiert.
Ich hoffe so ist es ein wenig verständlicher. Schon jetzt vielen Dank für deine Hilfe.
Gruß,
Günther.
Anzeige
AW: Application.InputBox
21.11.2018 15:06:09
Bernd
Servus Günther,
jetzt hab ich es kapiert.
teste mal:

Sub Beispiel()
Dim wkbQuelle As Workbook, wkbZiel As Workbook, wkb As Workbook
Dim rngFreieZelle As Range
Dim strDateiname As String, strPfad As String
Dim bolOffen As Boolean
Dim Zeile As Long
On Error GoTo Fin
strDateiname = "Beispiel.xlsx"
strPfad = "D:\Beispiel\"
For Each wkb In Workbooks
If UCase(wkb.Name) = UCase(strDateiname) Then
bolOffen = True
Exit For
End If
Next
If Not bolOffen Then Workbooks.Open strPfad & strDateiname
Set wkbZiel = Workbooks(strDateiname)
Set wkbQuelle = ThisWorkbook
With wkbZiel.Sheets("Sheet1")
Set rngFreieZelle = .Range("A" & .Rows.Count).End(xlUp).Offset(1, 0)
End With
Zeile = InputBox("Bitte die zu kopierende Zeile eingeben:", "Zeile eingeben", 1)
     wkbQuelle.Sheets("Tabelle1").Range("A" & Zeile).Copy
     rngFreieZelle.PasteSpecial (xlPasteValuesAndNumberFormats)
Application.CutCopyMode = False
Application.DisplayAlerts = False
Workbooks("Beispiel.xlsx").Close SaveChanges:=True
Application.DisplayAlerts = True
Fin:
If Err.Number  0 Then MsgBox "Fehler: " & _
Err.Number & " " & Err.Description
End Sub

Anzeige
AW: Application.InputBox
21.11.2018 15:37:57
Günther
Hallo Bernd,
genau das hatte ich gemeint, funktioniert!
Vielen Dank!
Gruß,
Günther

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige