Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1372to1376
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
Inhaltsverzeichnis

letzte Zeile ermitteln, markieren und nutzen

letzte Zeile ermitteln, markieren und nutzen
05.08.2014 00:31:55
Florri
Hallo,
ich habe das Forum bereits ausgiebig durchforstet, jedoch finde ich leider nur Ansätze für die Lösung meines Problems. Aufgrund mangelnder Kenntnisse kann ich diese aber nicht zu einer Lösung vereinen. Deshalb hier nochmals die Beschreibung, wie Ihr mir helfen könntet.
Ich habe ein Datenblatt, in dem jeweils in 10 Blöcken a 7 Spalten Werte stehen. Es handelt sich um Daten zu Bewegungsversuchen. In der ersten Spalte eines jeden Blocks steht die absolute Zeit, in der zweiten Spalte möchte ich nun gerne die relative Zeit eintragen. Manuell geht das ja alles ganz problemlos, jedoch wäre es eine riesengroße Erleichterung, wenn das "automatisiert" ablaufen könnte.
Ich erkläre mein Vorhaben anhand von Block 1 (Spalte A - G), siehe auch Screenshot.
In Spalte A befindet sich die "Zeit". In Spalte B die relative Zeit "% Zeit". Ich springe nun zum Ende von Spalte A (= Reihe 46) und gebe folgende Formel in Spalte B, R 46 ein: = ("A46"/880)*100. Dann verwende ich Autofill und ziehe die Formel bis zu B2. Somit ergibt sich eine Spanne von 0 (in B3) bis 100 % (in B46). So führe ich das dann in den weiteren Blöcken fort. "% Zeit" wird also in den Spalten B, J, R, Z, AH, AP, AX, BF, BN, BV berechnet und eingetragen.
Leider ist jeder dieser Versuche unterschiedlich lange, so dass zuerst jeweils der letzte Wert in der Spalte für die "Zeit" ermittelt werden muss.
Insgesamt habe ich über 60 solcher Datenblätte, weshalb es wirklich eine wahnsinnige Erleichterung für mich wäre, wenn ich hierfür ein Makro anwenden könnte.
Userbild
Ich danke Euch schon mal im Voraus für Eure Bemühungen und gebe auf jeden Fall Rückmeldung.
Schönen Gruß
Florian

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: letzte Zeile ermitteln, markieren und nutzen
05.08.2014 06:59:28
TOM
Guten Morgen Florian
Das sieht nach einem Programmierauftrag aus...
Die letzte leere Zelle findes Du mit:
Sub Test()
Range("A:A").End(xlDown).Offset(1, 0).Activate
End Sub
Gruss
TOM

AW: letzte Zeile ermitteln, markieren und nutzen
05.08.2014 07:04:20
Hajo_Zi
Hallo Florian,
Ich baue keine Datei nach, die Zeit hat schon jemand investiert.
Ein Nachbau sieht bestimmt anders aus als das Original.
Ein Link zur Datei oder ein Tabellen Ausschnitt nicht als Bild wäre nicht schlecht.

Jul 2014
 C
29Falsch
30496

verwendete Formeln
Zelle Formel Bereich N/A
C29=C27=C28  
C30=SUMMEWENN([Bildschirm.xlsm]Statistik!$Q$44:$Q$54;"<" &HEUTE();[Bildschirm.xlsm]Statistik!$R$54)  
Excel-Inn.de
Hajo-Excel.de
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 18.07 einschl. 64 Bit


Benutze hier im Forum die Funktion zum hochladen. Falls Du die nicht benutzen möchtest beachte, von unsicheren Servern wie z.B. www.file-upload.net lade ich keine Datei runter. (lt. Einschätzung meines Virenprogramms)
Der Dateiname sollte was mit dem Problem zu tun haben.
Ich habe mir z.B. einen Ordner angelegt in dem ich alle Dateien aus dem Internet speichere. Bei Dateinamen wie Test..., Mappe…, Beispiel… wird eine vorhandene überschrieben.
Ein Bild in Excel geöffnet sieht anders aus als das Bild.
Ich habe kein Tool um ein Bild in Excel zu importieren.

Anzeige
AW: letzte Zeile ermitteln, markieren und nutzen
05.08.2014 07:25:19
Spenski
hi ich versteh deine frage nicht wirklich aber ich versuchs einfach mal.
B2=100/MAX(A:A)*A2 und danach runterkopieren
desweiteren würde ich dir dynamische tabellen empfehlen.
da aber keine BSP Datei vorliegt kann man auch nicht viel mehr zu sagen
gruss

letzte Zeile ermitteln und Formel eintragen
05.08.2014 07:40:38
Matthias
Hallo Florian
Ich glaube Dein Problem verstanden zu haben
Hier mal ein Ansatz
https://www.herber.de/bbs/user/91890.xlsm
Nun brauchst Du nur noch mit dem Rekorder das AutoFillScript aufzuzeichnen und anzupassen
Gruß Matthias

Anzeige
AW: letzte Zeile ermitteln und Formel eintragen
05.08.2014 07:49:46
Oberschlumpf
Hi Matthias
und wie werden mit deinem Code die jetzt noch leeren Zellen mit der richtigen Formel aufgefüllt?
Ciao
Thorsten

letzte Zeile ermitteln und Formel eintragen!
05.08.2014 08:29:28
Matthias
Hallo
Zitat:

und wie werden mit deinem Code die jetzt noch leeren Zellen mit der richtigen Formel aufgefüllt?
Sieh Dir doch noch mal den Text im Betreff an.
und ich hatte geschrieben:
Hier mal ein Ansatz
Nun brauchst Du nur noch mit dem Rekorder das AutoFillScript aufzuzeichnen und anzupassen

Ich hatte hier auf Eigenitiative von Florri gesetzt


aber egal:
bitte hier meine Variante
Option Explicit
Sub Florian2()
Dim LoLetzteCol&, x&, wert
For x = 1 To 27 Step 8
LoLetzteCol = Cells(Rows.Count, x).End(xlUp).Row
wert = Cells(LoLetzteCol, x)
Cells(LoLetzteCol, x + 1).FormulaR1C1 = "=(RC[-1]/" & wert & ")*100"
Cells(LoLetzteCol, x + 1).AutoFill Destination:=Range(Cells(LoLetzteCol, x + 1), Cells(2, x +  _
1)), Type:=xlFillDefault
Next
End Sub
Gruß Matthias

Anzeige
hier ne VBA-Lösung
05.08.2014 07:47:39
Oberschlumpf
Hi
OHNE Excel-Bsp-Datei findest du hier, gerade bei solchen Datenmengen, schlecht Freunde, respektive Lösungsideen.
hier mal meine Idee:
Sub sbFastUngetestet()
Dim lloCol As Long, lloRow As Long, lloLast As Long
Const lciChr = 64
For lloCol = 1 To Cells(1, Columns.Count).End(xlToLeft).Column
If Cells(1, lloCol).Value = "Zeit" Then
lloLast = Cells(Rows.Count, lloCol).End(xlUp).Row
Cells(lloLast, lloCol + 1).FormulaLocal = "=(" & Chr(lciChr + lloCol) & _
lloLast & "/" & Cells(lloLast, lloCol).Value & ")*100"
Cells(lloLast, lloCol + 1).AutoFill Destination:=Range(Chr(lciChr + lloCol + 1)  _
& _
"2:" & Chr(lciChr + lloCol + 1) & lloLast), Type:=xlFillDefault
End If
Next
End Sub

Hilfts?
Wenn nicht, dann zeig uns die Tabelle innerhalb von Excel.
Ciao
Thorsten

Anzeige
AW: letzte Zeile ermitteln, markieren und nutzen
05.08.2014 08:44:23
JoWE
Hallo Florian,
hier noch'n Ansatz:
Private Sub schneller()
Dim s As Long, z As Long, t As String
For s = 2 To 74 Step 8
z = Cells(s - 1, 1).End(xlDown).Row
t = Replace(Cells(z, 1).Address, "$", "")
Cells(z, s).Formula = "=" & t & "/880"
Cells(z, s).AutoFill Destination:= _
Range(Cells(2, s), Cells(z, s)), Type:=xlFillDefault
Next s
End Sub

Gruß
Jochen

AW: letzte Zeile ermitteln, markieren und nutzen
05.08.2014 12:12:18
Florri
Hallo zusammen,
erst mal vielen Dank an Alle, die sich über diese Sache Gedanken gemacht haben. Entschuldigt bitte, dass ich keine Beispiel-Datei hinzugefügt habe, aber diese Möglichkeit kam mir leider gar nicht in den Sinn.
Ganz besonderen Dank an Matthias und Thorsten. Die für mich perfekte Lösung war der Ansatz von Matthias. Gut, dass Du noch eine ausführlichere Lösung angeboten hast, weil auf meine Eigeninitiative kein Verlass war. Die ist zwar grundsätzlich vorhanden, allerdings aufgrund meiner mangelnden Kenntnisse weitgehend nutzlos. Wie gesagt, diese Lösung ist genau das, wonach ich gesucht habe.
@Thorsten: Auch dieser Ansatz hat super funktioniert, allerdings bricht das Makro in meiner Excel-Datei nach dem 4. Block ab, d.h. insgesamt werden 4 Spalten "% Zeit" mit den Formel aufgefüllt. Das entspricht dem Ausschnitt aus meinem Screenshot, wobei ich es nicht geschafft habe, das Makro so zu verändern, um die Range auf insgesamt 10 Blöcke zu erweitern.
@Jochen: Ebenfalls vielen Dank. Bei Deinem Ansatz verändert sich allerdings nicht die Zeile, bis wohin AutoFill durchgeführt werden. Sie blieb konstant, entsprechend der ersten Spalte.
Ich habe noch eine Excel-Datei als Beispiel hinzugefügt, falls noch jemand etwas testen möchte. Eigentlich ist mein Anliegen jedoch perfekt gelöst.
https://www.herber.de/bbs/user/91908.xlsx
Nochmals Vielen Dank an dieses Forum. Echt super! Evtl. bekommt es eine Widmung in meiner Dr. Arbeit.
Schönen Gruß,
Florian

Anzeige
AW: letzte Zeile ermitteln, markieren und nutzen
05.08.2014 12:28:11
JoWE
Ups, kleine Korrektur:
streichen: z = Cells(s - 1,1).End(xlDown).Row
setzen: z = Cells(1, s - 1).End(xlDown).Row
sorry,
Gruß
Jochen

AW: letzte Zeile ermitteln, markieren und nutzen
05.08.2014 12:33:40
JoWE
und noch eine...
Private Sub schneller()
Dim s As Long, z As Long, t As String
For s = 2 To 74 Step 8
z = Cells(1, s - 1).End(xlDown).Row
t = Replace(Cells(z, s - 1).Address, "$", "")
Cells(z, s).Formula = "=" & t & "/880*100"
Cells(z, s).AutoFill Destination:= _
Range(Cells(2, s), Cells(z, s)), Type:=xlFillDefault
z = 0
Next s
End Sub

Gruß
Jochen

AW: letzte Zeile ermitteln, markieren und nutzen
05.08.2014 12:40:50
Florri
Lieber Jochen,
damit funktioniert es schon besser. Allerdings besteht immer noch ein Problem, welches ich in meiner ersten Antwort nicht erwähnte. Die absolute Zeit variiert ja, demnach darf die Zahl "880" in der Formel nicht fix sein, sondern muss sich an die letzte, unterste Zahl der "Zeit" anpassen. Der unterste Wert in der Spalte "% Zahl" muss also immer 1 bzw. 100 % betragen.
Schönen Gruß
Florian

Anzeige
AW: letzte Zeile ermitteln, markieren und nutzen
05.08.2014 22:21:08
JoWE
hmm, also etwa so?
Private Sub schneller()
Dim s As Long, z As Long, t As String
For s = 2 To 74 Step 8
z = Cells(1, s - 1).End(xlDown).Row
t = Replace(Cells(z, s - 1).Address, "$", "")
Cells(z, s).Formula = "=" & t & "/" & Cells(z, s - 1) & "*100"
Cells(z, s).AutoFill Destination:= _
Range(Cells(2, s), Cells(z, s)), Type:=xlFillDefault
z = 0
Next s
End Sub

Gruß
Jochen

AW: letzte Zeile ermitteln, markieren und nutzen
06.08.2014 13:51:28
Florri
Lieber Jochen,
damit funktioniert es perfekt. Vielen herzlichen Dank auch an Dich. Es ist sehr interessant zu sehen, dass mehrere verschiedene Ansätze das gleiche richtige Ergebnis liefern. Ich wünschte, ich würde das besser verstehen. Wenn ich mal Zeit habe...
Schönen Gruß
Florian
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige