Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
228to232
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
228to232
228to232
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Angabe Bereich im Code

Angabe Bereich im Code
13.03.2003 12:41:36
Joerg
Hi Forum,

ich möchte mit dem Code die letzten 5 Zeilen der Spalte G in die Arbeitsmappe kopieren. Gesucht werden soll dabei die letzte Zeile in der Spalte G der Mappe Auswert.
Wo muß ich etwas verändern damit dies funktioniert, da der Code im Forum bezogen wurde.

Code:

Dim wksAus As Worksheet
Dim wksSim As Worksheet
Dim lngRow As Long, lngRowDest As Long
Dim intCounter As Integer, intCopyCount As Integer
Dim varKrit As Variant, varFind As Variant
Application.ScreenUpdating = False
varKrit = TextBox3.Value
If varKrit = "" Then Exit Sub
Set wksAus = Worksheets("Auswert")
Set wksSim = Worksheets("Simpati-Daten")
With wksSim.Range("D:D")
Set varFind = .Find(What:=varKrit, After:=Range("D1"), _
LookIn:=xlValues, LookAt:=xlWhole, SearchDirection:=xlPrevious, _
MatchCase:=True)
If Not varFind Is Nothing Then
intCounter = 1
lngRow = varFind.Row
With wksAus.Range("D:D")
lngRowDest = .Range("D65536").End(xlUp).Row - 2
End With
If lngRowDest > 1 Then lngRowDest = lngRowDest + 1
Do
If wksSim.Cells(lngRow - 5 * intCounter, varFind.Column).Value = varFind Then
intCopyCount = intCopyCount + 1
wksSim.Range(wksSim.Cells(lngRow - 5 * intCounter, 1), _
wksSim.Cells(lngRow - 5 * intCounter, 4)).Copy _
Destination:=wksAus.Range(wksAus.Cells(lngRowDest + 1 + intCopyCount, 1), _
wksAus.Cells(lngRowDest + 1 + intCopyCount, 4))
End If
intCounter = intCounter + 1
If intCopyCount = 5 Then Exit Do
Loop Until lngRow - 5 * intCounter < 1
Else
MSGbox "Sollwert 1 """ & varKrit & """ wurde nicht gefunden"
End If
End With

Gruß Jörg

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Angabe Bereich im Code
13.03.2003 13:31:52
Thomas Raschen

Hallo,

na, was möchtest du denn genau machen? Da Makro such ja nach Sollwerten und so was. Möchtet Du einfach in der Spalte G den letzten wert suchen und dann die letzten 5 Werte in eine andere Spalte kopieren?

Gruß

Thomas

gefunden
13.03.2003 15:26:10
Joerg

Durch langes Probieren habe die Lösung gefunden!
Hier der richtige Code:

Dim wksAus As Worksheet
Dim wksSim As Worksheet
Dim lngRow As Long, lngRowDest As Long
Dim intCounter As Integer, intCopyCount As Integer
Dim varKrit As Variant, varFind As Variant
Application.ScreenUpdating = False
varKrit = TextBox3.Value
If varKrit = "" Then Exit Sub
Set wksAus = Worksheets("Auswert")
Set wksSim = Worksheets("Simpati-Daten")
With wksSim.Range("D:D")
Set varFind = .Find(What:=varKrit, After:=Range("D1"), _
LookIn:=xlValues, LookAt:=xlWhole, SearchDirection:=xlPrevious, _
MatchCase:=True)
If Not varFind Is Nothing Then
intCounter = 1
lngRow = varFind.Row
With wksAus.Range("D:D")
lngRowDest = .Range("D65536").End(xlUp).Row - 2
End With
If lngRowDest > 1 Then lngRowDest = lngRowDest + 1
Do
If wksSim.Cells(lngRow - 5 * intCounter, varFind.Column).Value = varFind Then
intCopyCount = intCopyCount + 1
wksSim.Range(wksSim.Cells(lngRow - 5 * intCounter, 1), _
wksSim.Cells(lngRow - 5 * intCounter, 4)).Copy _
Destination:=wksAus.Range(wksAus.Cells(lngRowDest + 1 + intCopyCount, 1), _
wksAus.Cells(lngRowDest + 1 + intCopyCount, 4))
End If
intCounter = intCounter + 1
If intCopyCount = 5 Then Exit Do
Loop Until lngRow - 5 * intCounter < 1
Else
MSGbox "Sollwert 1 """ & varKrit & """ wurde nicht gefunden"
End If
End With

Gruß0 Jörg

Anzeige

286 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige