Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Automatische Erstellung von nummerierten Zeilen/Spalten
zurück: Mouse Over im Tabellenblatt weiter: Code schneller machen Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Antwort Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Georg1984
Gast


Verfasst am:
30. Dez 2009, 16:23
Rufname:

Automatische Erstellung von nummerierten Zeilen/Spalten - Automatische Erstellung von nummerierten Zeilen/Spalten

Nach oben
       Version: Office 2007

Hallo zusammen,

ich hoffe, ihr könnt mir helfen! Bin schon am Verzweifeln... Sad

Ich habe eine ziemlich große Tabelle mit nummerierten Zeilen und Spalten. Es ist jedoch so, dass einige Zeilen bzw. Spalten fehlen. Gibt es ein Makro-Befehl, der jede Zeile (Spalte) abklappert und prüft, ob die Nummerierung vollständig ist - und falls nicht, eine leere, am besten nummerierte Zeile (Spalte) dort einfügt?

Zum besseren Verständnis meines Problems habe ich nen Screenshot von nem Ausschnitt der Tabelle gemacht. Ihr könnt das Bild hier sehen:

http://picfront.de/d/xehleQquR8k/Unbenannt-1.jpg

Am Ende hätte ich gerne eine Tabelle mit durchgehend nummerierten Zeilen und Spalten. Dass der Inhalt der momentanen Zellen natürlich noch zu den ursprünglichen Zeilen/Spalten gehören, ist hoffentlich klar...

PS: Ich sollte noch dazu erwähnen, dass ich mich mit VBA überhaupt nicht auskenne, wobei ich schon weiß, wie ich die Makros ausführe etc. Smile

Vielen Dank im Voraus!
Gruß, Georg
Der_Worti
Excel & VBA ganz ordentlich


Verfasst am:
30. Dez 2009, 17:21
Rufname: Klaus
Wohnort: Coesfeld


AW: Automatische Erstellung von nummerierten Zeilen/Spalten - AW: Automatische Erstellung von nummerierten Zeilen/Spalten

Nach oben
       Version: Office 2007

Hallo Georg,
hier ein Code, der dir die Zeilennummerierung vervollständigt. Analog geht das mit den Spaltennummern:

Code:

Sub Nummerierung()

    Dim lngZeile As Long, lngWert As Long
    Dim lngMerk As Long, lngMax
   
    lngMax = Cells(Cells(Rows.Count, 1).End(xlUp).Row, 1).Value
   
    If Cells(2, 1).Value > 1 Then
       Cells(2, 1).EntireRow.Insert
       Cells(2, 1).Value = 1
    End If
   
    lngZeile = 2
   
    Do
      If Cells(lngZeile + 1, 1).Value <> Cells(lngZeile, 1).Value + 1 Then
         lngWert = Cells(lngZeile, 1).Value + 1
         lngMerk = Cells(lngZeile + 1, 1).Value

         Do
          Cells(lngZeile + 1, 1).EntireRow.Insert
          Cells(lngZeile + 1, 1).Value = lngWert
          lngWert = lngWert + 1
          lngZeile = lngZeile + 1
         Loop Until lngWert = lngMerk
       Else
          lngZeile = lngZeile + 1
       End If
       
    Loop Until Cells(lngZeile, 1).Value = lngMax

End Sub

_________________
Gruß Worti
Zero
Formeln, Diagramme und ein bisschen VBA


Verfasst am:
30. Dez 2009, 17:21
Rufname: Dennis
Wohnort: NDS

AW: Automatische Erstellung von nummerierten Zeilen/Spalten - AW: Automatische Erstellung von nummerierten Zeilen/Spalten

Nach oben
       Version: Office 2007

Hallo

teste das mal..
Code:
Sub test()
Dim z As Long
Dim s As Long

For z = 2 To WorksheetFunction.Max(Range("A:A"))
    If Cells(z, 1) <> z - 1 Then _
        Cells(z, 1).EntireRow.Insert
        Cells(z, 1) = z - 1
    Next z
   
For s = 2 To WorksheetFunction.Max(Range("1:1"))
    If Cells(1, s) <> s - 1 Then _
        Cells(1, s).EntireColumn.Insert
        Cells(1, s) = s - 1
    Next s
   
End Sub

_________________
Gruß zero
Georg1984
Gast


Verfasst am:
30. Dez 2009, 18:06
Rufname:

AW: Automatische Erstellung von nummerierten Zeilen/Spalten - AW: Automatische Erstellung von nummerierten Zeilen/Spalten

Nach oben
       Version: Office 2007

Es hat geklappt! *juhuu!* Smile

Tausend Dank an euch beide, Worti und Zero!

Vor allem deine Lösung, Zero, ist super, da sie Zeilen und Spalten gleichzeitig nummeriert...

Euch noch nen schönen Abend! Ihr habt meinen gerettet! Smile

Gruß, Georg
Georg1984
Im Profil kannst Du frei den Rang ändern


Verfasst am:
02. Jan 2010, 12:01
Rufname: Georg


AW: Automatische Erstellung von nummerierten Zeilen/Spalten - AW: Automatische Erstellung von nummerierten Zeilen/Spalten

Nach oben
       Version: Office 2007

Hallo,

ich hätte da doch noch einmal eine Frage. Und zwar habe ich eine sehr sehr große Datenbank (mit jeweils 36.000 Zeilen und Spalten). Das Durchlaufen des Makros von Zero dauert bei mir ewig - ich habe sogar das Gefühl, dass sich Excel aufhängt. Das andere Makro von Worti läuft da etwas schneller (habe beide Makros mal bei 1000 Einträgen durchlaufen lassen...) Allerdings werden mit diesem Makro nur die Zeilen erzeugt.

Ich habe jetzt mal probiert, in Wortis Code alle Einträge mit "Zeile" durch "Spalte" zu ersetzen, sowie alle "rows" mit "columns". Leider funktionierte das Makro dann nicht Sad

Kann mir da vielleicht jemand helfen? Smile

Vielen Dank,
Georg
Phelan XLPH
Fortgeschritten


Verfasst am:
02. Jan 2010, 14:48
Rufname: Phelan

AW: Automatische Erstellung von nummerierten Zeilen/Spalten - AW: Automatische Erstellung von nummerierten Zeilen/Spalten

Nach oben
       Version: Office 2007

Hallo, Durchlaufzeit an meinem PC ca. 0,8 sec. bei 60.000 Zeilen

Code:
Sub ZeilenSpaltenAuffuellen3()
Dim arrTmp() As Variant
Dim arr As Variant
Dim arrOut() As Variant
Dim i As Long, m As Long
Dim t As Single
Dim max As Long

t = Timer
Application.ScreenUpdating = False

With Worksheets("Tabelle1") 'Anpassen***************
   
   
    'Zeilen
    arr = WorksheetFunction.Transpose(WorksheetFunction.Transpose(.Range(.Cells(1, 1), .Cells(1, .Columns.Count).End(xlToLeft))))
    If IsArray(arr) Then
        max = WorksheetFunction.max(arr)
        ReDim arrTmp(1 To max)
        For i = 1 To UBound(arr)
            If arr(i) <> "" Then arrTmp(arr(i)) = 1
        Next
        If WorksheetFunction.CountA(arrTmp) < max Then
            ReDim arrOut(1 To max - WorksheetFunction.CountA(arrTmp))
            For i = 1 To max
                If arrTmp(i) = "" Then m = m + 1: arrOut(m) = i
            Next
            Cells(1, UBound(arr) + 2).Resize(, UBound(arrOut)) = _
            WorksheetFunction.Transpose(WorksheetFunction.Transpose(arrOut))
        End If
    End If
   
    m = 0
    Erase arr
   
    'Spalten
    arr = WorksheetFunction.Transpose(.Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp)))
    If IsArray(arr) Then
        max = WorksheetFunction.max(arr)
        ReDim arrTmp(1 To max)
        For i = 1 To UBound(arr)
            If arr(i) <> "" Then arrTmp(arr(i)) = 1
        Next
        If WorksheetFunction.CountA(arrTmp) < max Then
            ReDim arrOut(1 To max - WorksheetFunction.CountA(arrTmp))
            For i = 1 To max
                If arrTmp(i) = "" Then m = m + 1: arrOut(m) = i
            Next
            Cells(UBound(arr) + 2, 1).Resize(UBound(arrOut)) = _
            WorksheetFunction.Transpose(arrOut)
        End If
    End If
   
    'Sortieren
    With .Range(.Cells(1, 1), .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, .Cells(1, .Columns.Count).End(xlToLeft).Column))
        If .Count > 1 Then
            .Sort .Cells(1), xlAscending, , , , , , xlYes, , , xlSortColumns
            With .Resize(, .Columns.Count - 1).Offset(, 1)
                .Sort .Cells(1), xlAscending, , , , , , , , , xlSortRows
            End With
        End If
    End With

End With

Application.ScreenUpdating = True
MsgBox Timer - t
End Sub

_________________
Was vorstellbar ist, ist auch machbar. - Albert Einstein


Zuletzt bearbeitet von Phelan XLPH am 02. Jan 2010, 20:29, insgesamt 2-mal bearbeitet
Gast



Verfasst am:
02. Jan 2010, 15:13
Rufname:

AW: Automatische Erstellung von nummerierten Zeilen/Spalten - AW: Automatische Erstellung von nummerierten Zeilen/Spalten

Nach oben
       Version: Office 2007

Hallo nochmal,
hier das Makro erweitert für Spaltennummerierung:
Code:

Sub Nummerierung()

    Dim lngZeile As Long, lngWert As Long
    Dim lngMerk As Long, lngMax
    Dim lngSpalte As Long
   
    lngMax = Cells(Cells(Rows.Count, 1).End(xlUp).Row, 1).Value
   
    If Cells(2, 1).Value > 1 Then
       Cells(2, 1).EntireRow.Insert
       Cells(2, 1).Value = 1
    End If
   
    lngZeile = 2
   
    Do
      If Cells(lngZeile + 1, 1).Value <> Cells(lngZeile, 1).Value + 1 Then
         lngWert = Cells(lngZeile, 1).Value + 1
         lngMerk = Cells(lngZeile + 1, 1).Value

         Do
          Cells(lngZeile + 1, 1).EntireRow.Insert
          Cells(lngZeile + 1, 1).Value = lngWert
          lngWert = lngWert + 1
          lngZeile = lngZeile + 1
         Loop Until lngWert = lngMerk
       Else
          lngZeile = lngZeile + 1
       End If
       
    Loop Until Cells(lngZeile, 1).Value = lngMax

    'Ab hier für die Spalten
    lngMax = Cells(1, Cells(Columns.Count).End(xlToLeft).Column).Value
   
    If Cells(1, 2).Value > 1 Then
       Cells(1, 2).EntireColumn.Insert
       Cells(1, 2).Value = 1
    End If
   
    lngSpalte = 2
   
    Do
      If Cells(1, lngSpalte + 1).Value <> Cells(1, lngSpalte).Value + 1 Then
         lngWert = Cells(1, lngSpalte).Value + 1
         lngMerk = Cells(1, lngSpalte + 1).Value

         Do
          Cells(1, lngSpalte + 1).EntireColumn.Insert
          Cells(1, lngSpalte + 1).Value = lngWert
          lngWert = lngWert + 1
          lngSpalte = lngSpalte + 1
         Loop Until lngWert = lngMerk
       Else
          lngSpalte = lngSpalte + 1
       End If
       
    Loop Until Cells(1, lngSpalte).Value = lngMax

End Sub

Georg1984
Im Profil kannst Du frei den Rang ändern


Verfasst am:
03. Jan 2010, 01:49
Rufname: Georg

AW: Automatische Erstellung von nummerierten Zeilen/Spalten - AW: Automatische Erstellung von nummerierten Zeilen/Spalten

Nach oben
       Version: Office 2007

Hallo,

danke an euch beide!

@Glücksritter: Ich weiß nicht, was ich falsch mache, aber bei mir funktioniert dein Code nicht.

Erstmal erzeugt er mir bei einer fiktiven Tabelle, in der ich z.B. 1 und 1000 sowohl in der 1. Zeile sowie in der 1. Spalte eingebe nicht in 0,8 Sek. die vollständige Tabelle, sondern benötigt dafür schon ne gute Minute.

Das weit aus größere Problem ist jedoch, dass bei meiner bereits gefüllten Tabelle (siehe Screenshot vom 1. Post) Fehlermeldungen auftauchen. Leider kann ich diese nicht spezifizieren, da bei unterschiedlichen Tabellen auch verschiedene Fehlermeldungen kommen. Hier aber dennoch eine Auswahl:

    Laufzeitfehler '1004': Anwendungs- oder objektdefinierter Fehler -> Debuggen führt zum folgenden Code:

Code:
Cells(1, UBound(arr) + 2).Resize(, UBound(arrOut)) = _
            WorksheetFunction.Transpose(WorksheetFunction.Transpose(arrOut))


    Laufzeitfehler '9': Index außerhalb des gültigen Bereichs -> Debuggen führt zum folgenden Code:

Code:
ReDim arrTmp(1 To max)


    Laufzeitfehler '13': Typen unverträglich -> Debuggeb führt zum folgenden Code:

Code:
If WorksheetFunction.CountA(arrTmp) < max Then


Was mache ich falsch???

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

@ Worti: Ich habe den neuen Code auf meine Tabellen ausprobiert. Aber es dauer immernoch ewig lange, bis er mir die Tabelle vervöllständigt... Sad

Gruß,
Georg

PS: bitte nicht auf meinen "älteren" Rechner schieben; er läuft sonst ziemlich flott und hat 2 GB Arbeitsspeicher... ;)
Phelan XLPH
Fortgeschritten


Verfasst am:
03. Jan 2010, 09:17
Rufname: Phelan


AW: Automatische Erstellung von nummerierten Zeilen/Spalten - AW: Automatische Erstellung von nummerierten Zeilen/Spalten

Nach oben
       Version: Office 2007

Hallo, also bei mir funktionierts einwandfrei.
_________________
Was vorstellbar ist, ist auch machbar. - Albert Einstein



Test.xls
 Beschreibung:

Download
 Dateiname:  Test.xls
 Dateigröße:  48.5 KB
 Heruntergeladen:  27 mal

Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Excel Formeln: Formel für automatische Gewinnverteilung 1 Yoolia 2545 16. Feb 2005, 14:01
fridgenep Formel für automatische Gewinnverteilung
Keine neuen Beiträge Excel Formeln: *** Automatische übernahme einer Zeile in ein anderes Sheet 5 Lucas 1586 10. Feb 2005, 17:44
fridgenep *** Automatische übernahme einer Zeile in ein anderes Sheet
Keine neuen Beiträge Excel Formeln: Will Werte addieren, in Bezug zu zwei anderen Spalten 3 Hardy_K_888 1971 02. Dez 2004, 12:00
ae Will Werte addieren, in Bezug zu zwei anderen Spalten
Keine neuen Beiträge Excel Formeln: Zeilen Minimum 2 -Christoph- 1736 22. Nov 2004, 13:01
-Christoph- Zeilen Minimum
Keine neuen Beiträge Excel Formeln: sverweis + darunterliegende Zeilen 7 L*R 3701 12. Nov 2004, 13:55
Arnim sverweis + darunterliegende Zeilen
Keine neuen Beiträge Excel Formeln: Werte aus 3 Spalten nebeneinander in 1 Spalte 2 Aloha 2697 02. Nov 2004, 23:31
Gast Werte aus 3 Spalten nebeneinander in 1 Spalte
Keine neuen Beiträge Excel Formeln: Wenn-Bedingung mit mehreren Spalten und Zeile 6 Lusie 2819 02. Nov 2004, 15:57
Lusie Wenn-Bedingung mit mehreren Spalten und Zeile
Keine neuen Beiträge Excel Formeln: Verknüpfen von Daten in verschiedenen Zeilen/Spalten 2 Guybrush Treepwood 3197 29. Okt 2004, 09:18
Guybrush Treepwood Verknüpfen von Daten in verschiedenen Zeilen/Spalten
Keine neuen Beiträge Excel Formeln: Zellen vergleichen / Zeilen löschen 3 Satanico 2994 28. Okt 2004, 15:37
icke Zellen vergleichen / Zeilen löschen
Keine neuen Beiträge Excel Formeln: Bestes Resultat in 2 Spalten herausfiltern 9 UAN 928 11. Okt 2004, 18:41
Tim Bestes Resultat in 2 Spalten herausfiltern
Keine neuen Beiträge Excel Formeln: Verweis über mehrere Blättern und Spalten 2 batigol_09 1249 08. Okt 2004, 10:26
batigol_09 Verweis über mehrere Blättern und Spalten
Keine neuen Beiträge Excel Formeln: Kann ich Zeilen "einfrieren"? 1 Chrisi 1115 08. Sep 2004, 13:01
fl618 Kann ich Zeilen "einfrieren"?
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Microsoft Word Serienbriefe