Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1228to1232
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

mittels VBA Zeilen kopieren

mittels VBA Zeilen kopieren
Klaus
Hello,
ich bekomme folgende Datei und möchte die ändern
https://www.herber.de/bbs/user/76674.xls
und zwar folgender Maßen: Wenn in der Spalte C "-" ist, dann die Zeile entsprechend oft kopieren (also bei 1-3 2x kopieren, bei 3-6 3x kopieren) und den Wert auch gleich ausbessern, das kann aber auch in einer neuen Spalte sein. Jedenfalls brauch ich für jeden Brandmelder eine eigene Zeile.
Hab jetzt den ganzen Nachmittag herumprobiert, aber ich bring das einfach nicht hin.
Wär super wenn mir da jemand helfen könnte...
Danke
Klaus

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: mittels VBA Zeilen kopieren
19.09.2011 22:00:26
Josef

Hallo Klaus,
probiere mal diesen Code.

' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub splitLines()
  Dim lngRow As Long, lngLast As Long
  Dim intFirst As Integer, intLast As Integer, intInsert As Long, intR As Integer
  
  On Error GoTo ErrExit
  tranquilize
  
  With ActiveSheet
    lngLast = Application.Max(4, .Cells(.Rows.Count, 1).End(xlUp).Row)
    
    For lngRow = lngLast To 4 Step -1
      If InStr(1, .Cells(lngRow, 3), "-") > 0 Then
        intFirst = Split(.Cells(lngRow, 3), "-")(0)
        intLast = Split(.Cells(lngRow, 3), "-")(1)
        intInsert = intLast - intFirst
        .Range(.Cells(lngRow + 1, 1), .Cells(lngRow + intInsert, 1)).EntireRow.Insert
        intInsert = 0
        For intR = intFirst To intLast
          .Rows(lngRow + intInsert).Value = .Rows(lngRow).Value
          .Cells(lngRow + intInsert, 3) = intR
          intInsert = intInsert + 1
        Next
      End If
    Next
  End With
  
  ErrExit:
  tranquilize True
End Sub


Public Sub tranquilize(Optional ByVal Modus As Boolean = False)
  Static lngCalc As Long
  
  With Application
    .ScreenUpdating = Modus
    .EnableEvents = Modus
    .DisplayAlerts = Modus
    .EnableCancelKey = IIf(Modus, 1, 0)
    If Not Modus Then lngCalc = .Calculation
    If Modus And lngCalc = 0 Then lngCalc = -4105
    .Calculation = IIf(Modus, lngCalc, -4135)
    .Cursor = IIf(Modus, -4143, 2)
  End With
  
  If Modus Then
    With Err
      If .Number <> 0 Then
        MsgBox IIf(Erl, vbLf & "Fehler in Zeile:" & vbTab & Erl & vbLf & vbLf, "") & _
          "Fehlernummer:" & vbTab & .Number & vbLf & vbLf & "Beschreibung:" & vbLf & _
          .Description, vbExclamation, "Fehler"
      End If
      .Clear
    End With
  End If
End Sub



« Gruß Sepp »

Anzeige
AW: mittels VBA Zeilen kopieren
20.09.2011 08:50:39
Klaus
Ja Wahnsinn, das funktioniert super !!!
Vielen lieben Dank !!! Das muß ich mir jetzt genau anschauen wie du das gemacht hast.
Danke nochmal und liebe Grüße
Klaus

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige