Clever-Excel-Forum

Normale Version: VBA - Excel 2003 - Bereich aus Datenbank kopieren und einfügen ?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4
hallo ihr lieben,

ich habe eine Beispiel-Mappe gemacht.

Mein Versuch den VBCode dort in das gewünschte zu bringen ist mal wieder gescheidert.

Hätte vielleicht jemand die Tage mal Zeit sich das anzusehen und eventuell
da mal "klar schiff" zu machen?

Vorab danke für jede Rückmeldung und eure Zeit

Gruß

Angelina
Hallo Angelina,

was hat die Zelle L1 mit der Spalte K zu tun?
(03.02.2015, 19:28)Steffl schrieb: [ -> ]Hallo Angelina,

was hat die Zelle L1 mit der Spalte K zu tun?


Der Eintrag in Zelle L1 besagt wieviel Zeilen aus der Datenbank im Range A:J angezeigt werden
Spalte K ist der erste Eintrag in der Spalte A


Gruß

Angelina
hallo an @,

kleiner Nachtrag - habe einen kleinen Fehler gemacht.

Derzeit ist die Datenbank auf dem Tabellenblatt "Start" Bereich CO:CV

ich habe jedoch vergessen, das ich ein zweites Tabellenblatt "Daten" angelegt habe
dort sind nun die Daten in dem Bereich A:H


sorry - für diesen Nachtrag


Gruß
Angelina
Hallo Angelina,

deinen Nachtrag gerade noch gelesen und Code (hoffentlich richtig) geändert.

Code:
Sub prcListe()
   Dim rngWert As Range
   Dim lngC As Long
  
   lngC = 1
   With Worksheets("Start")
      .Range("A:J").ClearContents
      Do Until IsEmpty(.Cells(lngC, 11).Value) Or .Range("L1").Value < lngC
         Set rngWert = Worksheets("Daten").Columns(1).Find(.Cells(lngC, 11).Value, LookIn:=xlValues, lookat:=xlWhole)
         If Not rngWert Is Nothing Then
            rngWert.Copy .Cells(lngC, 1)
            rngWert.Offset(, 1).Resize(, 7).Copy .Cells(lngC, 4)
            lngC = lngC + 1
         End If
      Loop
   End With
End Sub
hallo Stefan,

hm .... das ist ja nicht das was ich in der Mappe beschrieben habe.

Bei deinem VBCode werden ja nur die Daten zu der Spalte K angezeigt.

Habe ich das so schlecht erklärt? Huh


Sorry - aber das stimmt leider nicht

Trotzdem vielen lieben Dank für deine Zeit und Mühe

Gruß

Angelina
Hallo Angelina,

dann habe ich das nicht verstanden. Verstehe es trotz mehrmaligen Lesen immer noch nicht, wie es dann lauten soll.
(03.02.2015, 20:33)Steffl schrieb: [ -> ]Hallo Angelina,

dann habe ich das nicht verstanden. Verstehe es trotz mehrmaligen Lesen immer noch nicht, wie es dann lauten soll.


hallo,

habe die Datei nochmals angehängt.

Ist es jetzt klar?

Gruß

Angelina
Hallo Angelina,

Ich verstehe es leider immer noch nicht. Du hast in der Spalte K folgende Werte stehen. 1000, 800, 600, 400, 399.
In der Spalte A aber hast Du nur den Wert 1000 stehen und 999, 998, 997 usw. Heißt das Du willst den Wert aus K1 und alle Werte aus den Bereich K1-Wert aus der Zelle L1? Und wie verhält es sich bei Werten von 400 und 399?
Hallo Angelina,


du lässt leider nach mit Deinen Erklärungen. Mit Bacon allein kommt man nicht weiter, hast Du ja gesehen. Wink

teste mal:

Code:
Option Explicit

Private Sub CommandButton1_Click()
   Call Liste
End Sub

Sub Liste()
'=============================================================================
' Auswahl Zeile aus Datenbank
'=============================================================================
   Dim lngZ As Long
   Dim i As Long, j As Long
   Dim R
   Dim Takt As Long

   Takt = Range("L1")
    Columns("A:J").ClearContents
    lngZ = Cells(1, 11).End(xlDown).Row
    For i = 1 To lngZ
      If Cells(i, 11) < Takt Then
        MsgBox "Auswahlzeile muß mindestens " & Takt & " sein !", vbOKOnly, "Hinweis"
        Exit Sub
      End If
      With Sheets("Daten")
         R = Application.Match(Cells(i, 11), .Columns("A"), 0)
         If IsNumeric(R) Then
            For j = 1 To Takt
            Cells(j, 1).Value = .Cells(R, 1).Value
            Range(Cells(j, 4), Cells(j, 10)).Value = .Range(.Cells(R, 2), .Cells(R, 9)).Value
            R = R - 1
            Range("L2") = "'" & j & " / " & Takt
            Next j
         End If
      End With
   Next
    
End Sub
Seiten: 1 2 3 4