VBA - Excel 2003 - Bereich aus Datenbank kopieren und einfügen ?
#1
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


Angehängte Dateien
.xls   Takten.xls (Größe: 147,5 KB / Downloads: 9)
Top
#2
Hallo Angelina,

was hat die Zelle L1 mit der Spalte K zu tun?
Gruß Stefan
Win 10 / Office 2016
Top
#3
(03.02.2015, 20: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
Top
#4
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
Top
#5
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
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • Angelina
Top
#6
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
Top
#7
Hallo Angelina,

dann habe ich das nicht verstanden. Verstehe es trotz mehrmaligen Lesen immer noch nicht, wie es dann lauten soll.
Gruß Stefan
Win 10 / Office 2016
Top
#8
(03.02.2015, 21: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


Angehängte Dateien
.xls   Takten2.xls (Größe: 150,5 KB / Downloads: 8)
Top
#9
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?
Gruß Stefan
Win 10 / Office 2016
Top
#10
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
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • Angelina
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste