Thema Datum  Von Nutzer Rating
Antwort
29.06.2015 15:10:58 JuliaM
NotSolved
Blau nur jede 10. Zeile und Spalte behalten
30.06.2015 19:46:57 Gast24741
NotSolved
30.06.2015 20:42:44 Gast81217
NotSolved
05.07.2015 14:39:19 Gast78396
NotSolved
08.07.2015 23:15:20 Gast87815
NotSolved

Ansicht des Beitrags:
Von:
Gast24741
Datum:
30.06.2015 19:46:57
Views:
773
Rating: Antwort:
  Ja
Thema:
nur jede 10. Zeile und Spalte behalten

Hallo,

abhängig von der Datenmenge kann man sowas machen:

Option Explicit

Private Const GC_INIT_NAME As String = "procInit"
Private Const GC_RESET_NAME As String = "procReset"

Public Sub prcDeleteRowCol()
  Const START_ROW As Long = 2
  Const START_COLUMN As Long = 2
  Const STEP_DECR As Long = 10
  Dim lngLastColumn As Long, lngLastRow As Long, _
     lngModRows As Long, lngModColumns As Long, lngIndex As Long
  Dim strPrompt As String, strPrompt2 As String
  Dim enmMsgBoxResult As VbMsgBoxResult
  Dim objName As Name
  strPrompt = "Es wurden bereits Zeilen u. Spalten gelöscht." & vbCr & _
       "Wenn Sie neue Ausgangsdaten einfügen, müssen sie 'prcReset' ausführen, " & _
       "um erneut den Löschvorgang ausführen zu können."
  strPrompt2 = "Es wurde 'prcReset' ausgeführt!" & vbCr & _
       "Möchten Sie wirklich Spalten und Zeilen von neuen Daten löschen?"
  Application.ScreenUpdating = False
  With ActiveSheet
      For Each objName In .Names
         If objName.Name = .Name & "!" & GC_INIT_NAME Then
           MsgBox Prompt:=strPrompt, Buttons:=vbExclamation: Exit Sub
         ElseIf objName.Name = .Name & "!" & GC_RESET_NAME Then
           objName.Delete
           enmMsgBoxResult = MsgBox(Prompt:=strPrompt2, Buttons:=vbYesNo + vbQuestion)
           Exit For
         End If
      Next
      .Names.Add Name:=GC_INIT_NAME, RefersTo:=GC_INIT_NAME, Visible:=False
      If enmMsgBoxResult <> vbNo Then
        lngLastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
        lngLastColumn = .Cells(1, .Columns.Count).End(xlToLeft).Column
        lngModRows = (lngLastRow - START_ROW + 1) Mod STEP_DECR
        lngModColumns = (lngLastColumn - START_COLUMN + 1) Mod STEP_DECR
        .Range(.Rows(lngLastRow - lngModRows + 1), .Rows(lngLastRow)).Delete
        For lngIndex = lngLastRow - lngModRows - 1 To START_ROW + 1 Step -STEP_DECR
           .Range(.Rows(lngIndex - STEP_DECR + 2), .Rows(lngIndex)).Delete
        Next
        .Range(.Columns(lngLastColumn - lngModColumns + 1), .Columns(lngLastColumn)).Delete
        For lngIndex = lngLastColumn - lngModColumns - 1 To START_COLUMN + 1 Step -STEP_DECR
           .Range(.Columns(lngIndex - STEP_DECR + 2), .Columns(lngIndex)).Delete
        Next
      End If
  End With
End Sub

Public Sub prcReset()
  Dim objName As Name
  With ActiveSheet
        For Each objName In .Names
           With objName
               If .Name = ActiveSheet.Name & "!" & GC_INIT_NAME Then _
                 .Delete
           End With
        Next
        .Names.Add Name:=GC_RESET_NAME, RefersTo:=GC_RESET_NAME, Visible:=False
  End With
End Sub

Gruß,


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
29.06.2015 15:10:58 JuliaM
NotSolved
Blau nur jede 10. Zeile und Spalte behalten
30.06.2015 19:46:57 Gast24741
NotSolved
30.06.2015 20:42:44 Gast81217
NotSolved
05.07.2015 14:39:19 Gast78396
NotSolved
08.07.2015 23:15:20 Gast87815
NotSolved