Microsoft Excel

Herbers Excel/VBA-Archiv

Datenaufruf im Block

Betrifft: Datenaufruf im Block von: Markus
Geschrieben am: 13.08.2008 10:08:47

Hallo Zusammen,
ich habe folgendes Makro zum Aufruf von Daten aus einer Datenbank, welches bei einzelnen Werten auch funktioniert. Jetzt will ich aber einen größeren Bereich aus der Datenbank wiedergeben ohne aber jede einzelne Zelle angeben zu müssen.
Kann mir hierbei jemand helfen.

Sub Aufruf()
'***** Aufrufen erfasster Daten *****
Set Abf = Sheets("Abfrage")
Set Dab = Sheets("Datenbank")
If Not Dab Is Nothing Then
With Dab
Set r = Dab.Range("A2:A65000").Find(Sheets("Abfrage").[Kennung].Value, , , xlWhole, xlByRows, xlNext)
If Not r Is Nothing Then

Abf.Range("A2:A150") = r.Offset(0, 1 bis 150) ' ??????????????????????
'Werte aus gefundener Zeile sollen kopiert, transponiert und dann in
'Zellbereich A2:A150 kopiert werden

Abf.Range("A1") = r.Offset(0, 151).Value
Abf.Range("A151") = r.Offset(0, 152).Value
End If
End With


Vielen Dank und viele Grüße

Markus

  

Betrifft: AW: Datenaufruf im Block von: Rudi Maintaire
Geschrieben am: 13.08.2008 10:24:53

Hallo,
Abf.Range("A2:A150") = worksheetfunction.Transpose(Range(r, r.Offset(0, 150)))

Gruß
Rudi


  

Betrifft: AW: Datenaufruf im Block von: Markus
Geschrieben am: 13.08.2008 11:40:07

Hallo Rudi,
danke für deine Antwort. Es funktioniert prima, nur habe ich eben was vergessen bzw. falsch angegeben.
Deine Funktion kopiert Werte aus Spalte 1 bis 150. Ich bräuchte aber eine Funktion, die die Werte aus Spalte 4 bis 150 kopiert. Spalte 1-4 kopiere ich wie gehabt als einzelne Werte in andere Bereiche.
Geht das auch?

Viele Grüße
Markus


  

Betrifft: AW: Datenaufruf im Block von: Rudi Maintaire
Geschrieben am: 13.08.2008 11:44:40

Hallo,
warum nicht?
Abf.Range("A2:A150") = Worksheetfunction.Transpose(Range(r.Offset(0, 3), r.Offset(0, 150)))

Gruß
Rudi


  

Betrifft: AW: Datenaufruf im Block von: Markus
Geschrieben am: 13.08.2008 12:08:24

Hallo Rudi,
vielen vielen Dank. Deine hilfe hat mir wirklich weitergeholfen und dann auch noch so schnell.

Viele Grüße
Markus