Hallo WernerB.



Excel-Version: 2000
nach unten

Betrifft: Hallo WernerB.
von: Wilhelm
Geschrieben am: 26.04.2002 - 10:02:34

Hallo Werner,
du hast mir die schöne Geschichte:
Option Explicit
Sub LetzteZelleB()
Dim i As Integer
For i = 20 To 1 Step -1
If Cells(i, 2).Value > 0 Then
Cells(i, 2).Select
Exit For
End If
Next i
End Sub
zum finden des letzten Wertes in einer Spalte geschickt.
Das klappt in einem nackten Datenblatt (Tabelle1) wunderbar.
Ich kann durch verändern der Ziffer 2 in der Klammer die durchsuchten Spalten verändern, läuft also.
Wenn ich das Teil nun in meine eigentliche Datei einbaue, und hier spielt die Musik in Spalte E (E17:E52) verändere ich demenstprechend 2 mal die 2 in cells(i, 2) in eine 5 und dann hängts.
Es wird regelmässig Zelle 20 in Spalte 5 aktiviert. Ende
Verändere ich die i = 20 in I= 52 dann hängts halt auch auf 52 rum.
Was mache ich falsch?
Wilhlem


nach oben   nach unten

Re: Hallo WernerB.
von: TL
Geschrieben am: 26.04.2002 - 10:20:41

Hallo Wilhlem, leider kenne ich die ursprüngliche Aufgabenstellung nicht, aber ich benutze immer folgenden Code, um die letzte Zelle einer Spalte zu finden. Do Until IsEmpty(Cells(y, 1).Value) y = y + 1 Loop Ich hoffe ich konnte dir damit etwas helfen. Gruß, Thomas

nach oben   nach unten

Re: Hallo WernerB.
von: Wilhelm
Geschrieben am: 26.04.2002 - 10:38:16

Hallo Thomas, danke, erhalte Laufzeitfehler 1004 mit deiner Lösung. Sieht aber gut aus, irgendwo ein kleiner Fehler? Mein Problem: ich übernehme in Spalte E (E17:E52) per Formel(=A1 usw.)Werte aus der Nachbarspalte. Anschließend soll der letzte Wert der Spalte mit einem Vorgabewert verglichen werden. Wenn Werte gleich schreibt VBA einen Kennwert in eine Zelle von Tabelle2. Aber das klappt soweit. was nicht klappt ist das sichere Markieren des letzten Wertes in Spalte E.
nach oben   nach unten

Re: Hallo WernerB.
von: TL
Geschrieben am: 26.04.2002 - 10:50:16

Hallo Wilhelm, wenn du die Werte per Formel aus Spalte A "ziehst" und im Bereich "E17:E52" darstellst, dann können die Daten aus Spalte A ja nur aus dem Bereich "A1 bis A36" sein!? Ich habe mir eine Simulationstabelle gebastelt und die Werte aus Spalte A per VBA übertragen und danach nach der letzten Zelle gesucht! Kein Problem. Gruß, Thomas

nach oben   nach unten

Re: Hallo WernerB.
von: TL
Geschrieben am: 26.04.2002 - 11:04:02

Hallo, mit folgendem Code wird die letzte Zeile in Zelle "B1" ausgegeben. Ich denke, daß man den Code noch schöner programmieren kann, aber mir ist gerade nichts dazu eingefallen ;( ********************************************** Sub LetzteZelle() y = 17 For x = 17 To 52 inhalt = Cells(x, 5).Value If inhalt = "" Then Else: y = y + 1 End If Next x y = y - 1 Range("b1").Value = y End Sub ********************************************** Gruß, Thomas

nach oben   nach unten

Re: Hallo WernerB.
von: Wilhelm
Geschrieben am: 26.04.2002 - 11:06:34

Hallo Thomas, Die Werte sind natürlich aus A17:A52. Aber das dürfte ja egal sein. Wo fügst du in VBA ein? Normales Modul per Sub? Wie kommt der Laufzeitfehler zustande? Wilhelm

nach oben   nach unten

Re: Hallo WernerB.
von: Wilhelm
Geschrieben am: 26.04.2002 - 11:46:41

Hallo Thomas, so langsam bin ich am verzwazeln, Deine neue Lösung gibt mir jetzt in Zelle B1 die Zeilennummer der letzten Zelle mit Wert aus. Wilhelm braucht aber den Wert, oder aber einfach den Fokus auf dieser letzten Zelle. Gruß Wilhelm

nach oben   nach unten

Re: Hallo WernerB.
von: TL
Geschrieben am: 26.04.2002 - 11:58:44

Hallo Verzweifelter ;) Was meinst du mit Fokus? Vielleicht "Zelle selektieren", dann statt Range("b1").Value = y den Code "cells(y,5).select" Was willst du mit dem Zeilenwert machen? Gruß, Thomas

nach oben   nach unten

Re: Hallo WernerB.
von: Wilhelm
Geschrieben am: 26.04.2002 - 12:24:25

Hallo Thomas, genau das habe ich gemeint, nach dem Einfügen von "cells(y,5).Select" wird die letzte Zelle mit einem Wert als Inhalt zur aktiven Zelle (das meinte ich mit Fokus)ich muss diesen Wert ja weiterverarbeiten. D.h. ich vergleiche diesen Wert mit einem Vorgabewert und je nach Übereinstimmung wird in einem 2. Tabellenblatt ein Eintrag vorgenommen. Erst mal vielen Dank, ich hoffe daß das nun auch in der richtigen Datei klappt. Wilhelm

nach oben   nach unten

Letzte belegte Zelle
von: Martin Beck
Geschrieben am: 26.04.2002 - 14:01:45

Hallo Wilhelm, wenn Du letzte belegte Zelle unterhalb von E17 markieren möchtest und dazwischen keine Leerzellen vorkommen, geht da am einfachsten mit dem Befehl Range("E17").End(xlDown).Select Gruß Martin Beck

nach oben   nach unten

Re: Hallo WernerB.
von: WernerB.
Geschrieben am: 26.04.2002 - 18:23:56

Hallo Wilhelm, hier ist der Code (Deinen neuen Wünschen angepasst): Viel Erfolg wünscht WernerB.

nach oben   nach unten

Re: Hallo WernerB.
von: Wilhelm
Geschrieben am: 26.04.2002 - 20:00:59

Hallo Werner, Hallo Thomas,Hallo Martin, ich merke gerade daß ich einen ganzen "Stall voll Leute" genervt und beschäftigt habe. Also vielen Dank für Eure Mühe und Geduld. Jetzt flutscht das Ganze einwandfrei. Zumindest dieser Teil meines Problemes ist auf der Reihe. Wenn ich Euch mal einen Stein in den Garten... Bis dahin. Grüße Wilhelm

 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Autofilter"