Makro zur Umformatierung einer Tabelle
#11
hi snb,

klar hab ich das in der Datei des TE probiert.
In einem Modul, warum geht das da nicht?
wenn den von dir angegeben Bereich markieren will funktioniert das nicht, sondern kommt ein Laufzeitfehler
Zitat:Tabelle2.Cells(1, 10).Resize(UBound(sp), UBound(sp, 2) + 1).Select

Die Datei die du im letzten Post angehängt hast, hat den selben Inhalt des TE, nur das der Code in einem Arbeitsblatt direkt drin ist

Was mache ich falsch? Bitte mit Erklärung

Danke im Voraus

-------------------------

Hallo Ego,

benenne deine Datei um, bei mir wurde ein (1) angehängt, da sie schon mal im Ordner war.
Dann öffne sie und du bekommst 3 Fehlermeldungen
Top
#12
Du solltest nie selektieren, sondern das Makro laufen lassen.: das ist das Zweck eines Makros.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top
#13
Hallo,

Zitat:benenne deine Datei um, bei mir wurde ein (1) angehängt, da sie schon mal im Ordner war.
Dann öffne sie und du bekommst 3 Fehlermeldungen

habe ich gemacht. Bei mir erscheint keine Fehlermeldung.

Was mache ich falsch? Bitte mit Erklärung
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Top
#14
Den Weg mit "Specialcells(2,1)" fand ich zwar interessant, aber mit über 6 Sekunden Laufzeit "kein Renner". Die bewährte Methode schafft es in ca. 0.24 Sekunden.


Code:
Sub Quick()
Start = Timer
Dim Res()
With Sheets("staffoutput")
   Ar = .Range(.Cells(4, 1), .UsedRange.SpecialCells(xlCellTypeLastCell))
End With
ReDim Res(WorksheetFunction.CountIf(Sheets("staffoutput").Cells(4, 1).CurrentRegion, ">0"), 6)

   For j = 5 To UBound(Ar, 2)
       For i = 2 To UBound(Ar)
           If IsNumeric(Ar(i, j)) And Ar(i, j) > 0 Then
               r = r + 1
               Res(r, 1) = Ar(i, 1)
               Res(r, 2) = Ar(i, 2)
               Res(r, 3) = Ar(i, 3)
               Res(r, 4) = Ar(1, j)
               Res(r, 5) = Ar(i, j)
           End If
       Next i
   Next j

Sheets("Phi").Range("A1").Resize(UBound(Res), 6) = Res
Debug.Print Timer - Start '0,24 Sekunden
End Sub
Top
#15
Hi EGO und snb

ich nehm alles zurück und behaupte das Gegenteil.
Irwie war gestern nicht mein Tag
Top
#16
Wir freuen uns um deine Zukunft. :19:
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top
#17
Hallo zusammen,
bei der Lösung von snb habe ich leider auch einen Laufzeitfehler erhalten (Ursprungsdatei enthält 17000 Zeilen) und bei der Lösung von Phi.VBA hat es dann geklappt! :18:

Ebenso ein herzliches Dankeschön an alle anderen für ihr Engagement!

Liebe Grüsse,
Karo
Top


Gehe zu:


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