VBA Schleife
#1
Hallo Zusammen,

ich versuche eine VBA Schleife zu bauen für eine Datei.
Diese Schleife soll das gesamte Tabellen- Blatt durchlaufen.

Die Schleife soll die Untere Abfrage für das gesamte Blatt sein.

Genauer sollen alle bereiche zwischen Debitoren Nr. und Ergebnis durchlauen werden.
Aber immer nur 4 Spalten. 
So weit funktioniert alles, ich finde nur keinen weg mit der Schleife.

Zitat:Dim zeile As Integer
    Dim spalte As Integer
   
   
    Dim löschZeile As Integer
    Dim löschSpalte As Integer
   
    löschSpalte = 4
   
   
    zeile = 5
    spalte = 3
   
   
   
    Set bereich = Range("C:C").Find("Debitoren Nr. ")
    zeile = bereich.Row + 1
   
    Set bereich = Range("C:C").Find("Ergebnis")
       
    löschZeile = bereich.Row - 1
   
   
    Range("C" & zeile & ":F" & löschZeile).Clear


Danke für die Hilfe

Gruß

Aritmatos
Top
#2
das was du da als code kopiert hast, ist bitteschön was? 
du möchtest einen bereich durchsuchen der 4 spalten breit ist und die Zeilenbegrenzung durch die Suchworte bestimmt werden?


dim i as long, cnt as long

Set bereich = Range("C:C").Find("Debitoren Nr. ")
    zeile= bereich.Row
Set bereich = Range("C:C").Find("Ergebnis")
löschZei = bereich.Row

for i = zeile to  löschZeile

for cnt = 3 to 6    'Spalte C bis F
  if Cells(i,cnt) = vergleichmitwasauchimmer then tue irgendwas
next
next
[-] Folgende(r) 1 Nutzer sagt Danke an ralf_b für diesen Beitrag:
  • Aritmatos
Top
#3
Das ist der Code, der den Celleninhalt löscht.

die Tabelle ist recht groß und hat über 150 gleiche Bereiche.

der Bereich baut sich immer gleich auf.

   

So sieht das aus.

Der Momentane Code löscht den Bereich zwischen Debitor Nr und Ergebnis. aber nur 4 Spalten. Die 5 enthät eine Formel, die ich nicht löschen möchte. Ich müsste also immer Manuel den Zellbereich eingeben.

Ich möchte nun gerne, dass ich eine Schleife habe, die das gesamte Arbeitsblatt, (also alle Spalten und Zeilen) durchläuft und dann jeweils den oben Genannten bereich durchläuft. Da es keine feste Anzahl an Zeilen gibt, muss ich mich an den beiden Stichwörtern (Debitor Nr. und Ergebins) orientieren.

Hoffe das ist besser erklärt, was ich meine.

Gruß und Danke

Aritmatos
Top
#4
Hallo,

Hat keiner eine Idee?
Top
#5
Hallo,

ungetestet

Code:
Sub prcAirtmatos()


   Dim bereich As Range, bereich1 As Range
   Dim zeile As Integer
   Dim spalte As Long '
  
  
   Dim löschZeile As Integer
   Dim löschSpalte As Integer
  
   l?schSpalte = 4
  
  
   zeile = 5
   'spalte = 3
  
   For spalte = 3 To 15 Step 6
  
   Set bereich = Columns(spalte).Find("Debitoren Nr. ")
   zeile = bereich.Row + 1
  
   Set bereich1 = Columns(spalte).Find("Ergebnis")
      
   löschZeile = bereich1.Row - 1
  
  
   Cells(zeile, spalte).Resize(löschZeile - zeile + 1, 4).Clear
   Next spalte

End Sub
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • Aritmatos
Top
#6
Hallo Steffan,

ersmal vielen Dank,

die Schleife Funktioniert soweit super,
einzigste Problem sie geht nur von links nach rechts.
Nicht aber nach unten.

Sorry, ich habe das wohl nicht saubergenug erklärt.


   

gruß

Aritmatos
Top
#7
Lade mal bitte eine Musterdatei hoch.
Das Ganze sollte doch besser strukturiert werden: füge nur eine Spalte zu: Kalenderwoche.
Und dann gibt es nur eine Tabelle die man pro KW filtern könnte.

'Sructuring precedes Coding'
Zum übersetzen von Excel Formeln:

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

hoffe das hilft dir weiter.


.xlsm   Schleife Löschung.xlsm (Größe: 27,87 KB / Downloads: 9)

Ich habe nur für 4 Monate die erste Woche als Beispiel genommen, gesamt müssen etwa 2 Jahre abgebildet werden. Sag das nur wegen der Größe.

Danke

Gruß

Aritmatos
Top
#9
Schau mal:


Angehängte Dateien
.xlsb   __Schleife.xlsb (Größe: 8,84 KB / Downloads: 6)
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top
#10
Sorry, aber da geht gar nix, da ist kein Makro drinen. Huh

Gruß

Aritmatos
Top


Gehe zu:


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