Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Datenanalyse
#11
Hallo

versuch bitte mal diesen Teil:  Sheet1.Cells(1)  zu ersetzen durch  Worksheets(1), wenn es das 1. Blatt ist, oder durch den Tabellen Namen wie z.B. Worksheets("Tabelle1").Cells(1).  Würde mich freuen wenn es hilft.

mfg  Gast 123
Antworten Top
#12
Hallo,

habe es mit

sn = Worksheets(Tabelle1).CurrentRegion.Resize(, 5)

versucht, funktioniert aber leider nicht. Runtime error 9.

Andreas
Antworten Top
#13
Bitte, besser lesen.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#14
Danke für den Hnweis. Es sieht jetzt so aus und funktioniert.

Sub Msnb()
   sn = Worksheets(1).Cells(1).CurrentRegion.Resize(, 5)
   
   For j = 2 To UBound(sn)
      If sn(j, 3) = 20 And sn(j - 1, 3) = 21 Then
         sn(j - 1, 4) = sn(j, 1)
         sn(j - 1, 5) = sn(j - 1, 4) - sn(j - 1, 1)
      End If
   Next

   Worksheets(1).Cells(1).CurrentRegion.Resize(, 5) = sn
   Worksheets(1).Columns(4).SpecialCells(4).EntireRow.Delete
End Sub

Vielen Dank für Deine Hilfe, snb. Ich werde mir das morgen nochmal in Ruhe anschauen und auf einer größeren Datenmenge testen.

Andreas
Antworten Top
#15
Guten Morgen allerseits,

habe das Makro jetzt auf über 40.000 Datensätze angewendet und es läuft tadellos. Werde demnächst versuchen, es noch auf einige Sonderfälle hin anzupassen. Außer den Ein- und Austrittspunkten 21 und 20 gibt es nämlich noch drei weitere, wobei es z.B. möglich ist, dass ein User auf 21 eintritt und auf einem beliebigen anderen Ausgangspunkt wieder austritt. Man muss hier also wohl die IF-Abfrage entsprechend erweitern.

Des weiteren wäre es nützlich, die Datensätze, die der Abfrage nicht entsprechen, in einem getrennten Blatt zu sammeln, um sie evt. händisch zu kontrollieren.

Schließlich würde ich noch eine Umrechnung der Aufenthaltsdauer in Minuten hinzufügen.

Ich werde das jetzt mal probieren; bei Schwierigkeiten werde ich mich wieder melden.

Vielen Dank nochmals so weit.

Andreas
Antworten Top
#16
Bitte, verwende Code Tags !
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#17
Du meinst das hier?


Code:
Sub Msnb()
  sn = Worksheets(1).Cells(1).CurrentRegion.Resize(, 5)
 
  For j = 2 To UBound(sn)
     If sn(j, 3) = 20 And sn(j - 1, 3) = 21 Then
        sn(j - 1, 4) = sn(j, 1)
        sn(j - 1, 5) = sn(j - 1, 4) - sn(j - 1, 1)
     End If
  Next

  Worksheets(1).Cells(1).CurrentRegion.Resize(, 5) = sn
  Worksheets(1).Columns(4).SpecialCells(4).EntireRow.Delete
End Sub


Andreas
Antworten Top
#18
Genau  :19:
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


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