Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

1 freie Zeile statt B10 in bestehenden Macro änder | Herbers Excel-Forum


Betrifft: 1 freie Zeile statt B10 in bestehenden Macro änder von: snore
Geschrieben am: 24.01.2010 11:23:41

Hallo Excelprofis,

hab wieder ein Problem ich hab ein Macro von t.ramel, funktioniert super,
in diesen Macro werden Daten aus einer geschlossenen Arbeitsmappe Kopiert und in die Ziel Arbeitsmappe ab deb Bereich B10 beingefügt, soweit so gut.
Nun möchte ich aber das nicht ab der Zelle B10 eingefügt wird sondern immer an die 1 freie zeile in der Spalte B.

Public Function GetDataClosedWB(SourcePath As String, _
                                SourceFile As String, _
                                sourceSheet As String, _
                                SourceRange As String, _
                                TargetRange As Range) As Boolean

'Holt einen Bereich aus einer _geschlossenen_ Arbeitsmappe
'Nur in VBA zu verwenden; nicht aus einer Tabellenzelle heraus
'© t.ramel@mvps.org

Dim strQuelle       As String
Dim Zeilen          As Long
Dim Spalten         As Byte

   On Error GoTo InvalidInput

   strQuelle = "'" & SourcePath & "[" & SourceFile & "]" & _
               sourceSheet & "'!" & _
               Range(SourceRange).Cells(1, 1).Address(0, 0)

   Zeilen = Range(SourceRange).Rows.Count
   Spalten = Range(SourceRange).Columns.Count

   With TargetRange.Cells(1, 1).Resize(Zeilen, Spalten)
      .Formula = "=IF(" & strQuelle & "="""",""""," & strQuelle & ")"
      .Value = .Value
   End With

   GetDataClosedWB = True
   Exit Function

InvalidInput:
   MsgBox "Die Quelldatei oder der Quellbereich ist ungültig!", _
          vbExclamation, "Get data from closed Workbook"
   GetDataClosedWB = False
End Function


''Als Aufruf für die Funktin kannst Du dann z.B. sowas hier verwenden:

'Code:
Public Sub HoleDaten()
Dim Pfad            As String
Dim Dateiname       As String
Dim Blatt           As String

   Pfad = "D:\DeinPfad\"
   Dateiname = "test.xls"
   Blatt = "Tabelle1"

   If GetDataClosedWB(Pfad, _
                      Dateiname, _
                      Blatt, _
                      "A5:DZ57", _
                      Worksheets("Tabelle3").Range("B10")) Then
      MsgBox "Daten importiert"
   End If
End Sub
könnt ihr mir bitte weiterhelfen, danke

Gruß
snore

  

Betrifft: ..schau mal da.... von: robert
Geschrieben am: 24.01.2010 11:29:06

gruß
robert

http://lmgtfy.com/?q=erste%20freie%20zeile


  

Betrifft: Danke von: snore
Geschrieben am: 24.01.2010 11:49:54

Danke Robert,

einfach, und passt, selber daraufkommen feht bei mir

Danke

Gruß
snore


  

Betrifft: AW: 1 freie Zeile statt B10 in bestehenden Macro änder von: Hajo_Zi
Geschrieben am: 24.01.2010 11:29:50

Halo snore,

vielleicht so.

Option Explicit

Public Sub HoleDaten()
    Dim Pfad            As String
    Dim Dateiname       As String
    Dim Blatt           As String
    Dim LoLetzte As Long
    With Worksheets("Tabelle3")
        LoLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, . _
Rows.Count)
    End With
    Pfad = "D:\DeinPfad\"
    Dateiname = "test.xls"
    Blatt = "Tabelle1"
    If GetDataClosedWB(Pfad, _
        Dateiname, _
            Blatt, _
            "A5:DZ57", _
            Worksheets("Tabelle3").Range("B" & LoLetzte)) Then
        MsgBox "Daten importiert"
    End If
End Sub
GrußformelHomepage


  

Betrifft: AW: 1 freie Zeile statt B10 in bestehenden Macro änder von: snore
Geschrieben am: 24.01.2010 12:46:54

Hallo Hajo,


das wars genau das brauche ich, Danke für deine Hilfe.

Danke und Gruß

Snore


  

Betrifft: AW: 1 freie Zeile statt B10 in bestehenden Macro änder von: Hajo_Zi
Geschrieben am: 24.01.2010 14:39:32

Hallo snore,

die korrekte Schreibweise ist
Worksheets("Tabelle3").Range("B" & LoLetzte+1)) Then
das war Dir aber bestimmt schon aufgefallen.

Gruß Hajo


Beiträge aus den Excel-Beispielen zum Thema "1 freie Zeile statt B10 in bestehenden Macro änder"