Microsoft Excel

Herbers Excel/VBA-Archiv

letzte Zeile ermitteln, markieren und nutzen

Betrifft: letzte Zeile ermitteln, markieren und nutzen von: Florri
Geschrieben am: 05.08.2014 00:31:55

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.

Ich danke Euch schon mal im Voraus für Eure Bemühungen und gebe auf jeden Fall Rückmeldung.

Schönen Gruß
Florian

  

Betrifft: AW: letzte Zeile ermitteln, markieren und nutzen von: TOM
Geschrieben am: 05.08.2014 06:59:28

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


  

Betrifft: AW: letzte Zeile ermitteln, markieren und nutzen von: Hajo_Zi
Geschrieben am: 05.08.2014 07:04:20

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.

GrußformelHomepage


  

Betrifft: AW: letzte Zeile ermitteln, markieren und nutzen von: Spenski
Geschrieben am: 05.08.2014 07:25:19

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


  

Betrifft: letzte Zeile ermitteln und Formel eintragen von: Matthias L
Geschrieben am: 05.08.2014 07:40:38

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


  

Betrifft: AW: letzte Zeile ermitteln und Formel eintragen von: Oberschlumpf
Geschrieben am: 05.08.2014 07:49:46

Hi Matthias

und wie werden mit deinem Code die jetzt noch leeren Zellen mit der richtigen Formel aufgefüllt?

Ciao
Thorsten


  

Betrifft: letzte Zeile ermitteln und Formel eintragen! von: Matthias L
Geschrieben am: 05.08.2014 08:29:28

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


  

Betrifft: hier ne VBA-Lösung von: Oberschlumpf
Geschrieben am: 05.08.2014 07:47:39

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


  

Betrifft: AW: letzte Zeile ermitteln, markieren und nutzen von: JoWE
Geschrieben am: 05.08.2014 08:44:23

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


  

Betrifft: AW: letzte Zeile ermitteln, markieren und nutzen von: Florri
Geschrieben am: 05.08.2014 12:12:18

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


  

Betrifft: AW: letzte Zeile ermitteln, markieren und nutzen von: JoWE
Geschrieben am: 05.08.2014 12:28:11

Ups, kleine Korrektur:

streichen: z = Cells(s - 1,1).End(xlDown).Row
setzen: z = Cells(1, s - 1).End(xlDown).Row

sorry,
Gruß
Jochen


  

Betrifft: AW: letzte Zeile ermitteln, markieren und nutzen von: JoWE
Geschrieben am: 05.08.2014 12:33:40

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


  

Betrifft: AW: letzte Zeile ermitteln, markieren und nutzen von: Florri
Geschrieben am: 05.08.2014 12:40:50

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


  

Betrifft: AW: letzte Zeile ermitteln, markieren und nutzen von: JoWE
Geschrieben am: 05.08.2014 22:21:08

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


  

Betrifft: AW: letzte Zeile ermitteln, markieren und nutzen von: Florri
Geschrieben am: 06.08.2014 13:51:28

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


 

Beiträge aus den Excel-Beispielen zum Thema "letzte Zeile ermitteln, markieren und nutzen"