Makro bestimme zellen markieren

  • #1
D

djay911

Mitglied
Themenersteller
Dabei seit
12.10.2005
Beiträge
15
Reaktionspunkte
0
hallo...
da ich von vba makros gar keine ahnung habe, versuche ich es mal hier.
ich habe folgendes problem:
ich habe eine excel tabelle und möchte nur gefüllte zeilen markieren.
z.b.
ein makro das Spalte A1 bis zur letzten beschriebenen Zeile in Spalte E markiert
die zeilenlänge ist pro Spalte immer gleich.
es ist wichtig, dass nur gefüllte zellen markiert werden.
ich habe mir mal ein makro kopiert was nur leerstellen in einem feld entfernt. und bis jetzt muss ich vorher alle zellen von hand markieren. bei 6235 zellen dauert das ganz schön lange.
vielleicht kann mir ja jemand helfen, ich wäre sehr dankbar.


mfg

jason
:'(
 
  • #2
hi

ich hab eine kleine frage zu deiner frage *gg*

also wenn jetzt z.B. A1 nicht leer ist, heisst das automatisch dass B1 auch nicht leer ist oder muss das makro kontrollieren ob A1, B1, C1, D1 und E1 nicht leer sind?

mfg billy
 
  • #3
Damit das makro nicht die standart excel zeilen von ca. 65000 stück durchlaufen muss, wollte ich es umgehen, einfach die spalten komplet zu markieren.
ich habe in einem anderen forum mal ein makro gefunden, wo vorher abgefragt wird, ob die zeilen leer sind.

und hier kommt der Code, der ab Zeile 1 bis zur letzten beschriebenen Zeile die Spalte E markiert.

Sub letzte_beschriebene_Zeile()
Dim Zeile As Long
Zeile = Range(E65536).End(xlUp).Row
Range(Cells(1, 5), Cells(Zeile, 5)).Select


so in der art meinte ich es, nur halt nicht nur für spalte E sondern für die Spalten
A bis D.

ich hoffe ich habe mich halbwegs verständlich ausdrücken können.

und danke für die schnelle antwort, auch wenns eine frage war.

jason
 
  • #4
oke

hmm... nochmals ne frage, sorry aber nach den Ferien ist mein Gehirn auf durchzug gestellt ^^...

ich hab jetzt mal ein Makro gemacht dass einfach von A1 bis XY die spalten A->E kontrolliert ob Sie etwas enthalten. Wenn alle Zellen in dieser Zeile gefüllt sind, wird die Zeile markiert.

und das zeile für Zeile bis zur letzen Zeile die etwas enhält. Entspricht das so in etwa deinen erwartungen?

oder willst du es einfach mal ausprobieren ;)

billy
 
  • #5
ja klar würde ich es gerne ausprobiren...

jason ;D
 
  • #6
hi

versuchs mal mit folgendem hier:

Code:
Sub markiere()
'Variabel deklaration
Dim reihe As Long, bereich As String
bereich = 

For reihe = 1 To ThisWorkbook.ActiveSheet.UsedRange.Rows.Count
->kontrolle ob alle spalten von A bis E leer sind
 If Cells(reihe, 1).Value <>  And Cells(reihe, 2).Value <>  And Cells(reihe, 3).Value <>  And Cells(reihe, 4).Value <>  And Cells(reihe, 5).Value <>  Then
 ->wenn das der Fall ist wird die zeile gespeichert in der Variabel bereich
  If bereich =  Then
   bereich = reihe & : & reihe
  Else
   bereich = reihe & : & reihe & , & bereich
  End If
 End If

Next
Range(bereich).Select

End Sub
 
  • #7
bei mir kommt leider eine fehlermeldung:
Laufzeitfehler 1004
Die methode Range für das Objekt->_Global' ist fehlgeschlagen

:'( :'(

jason
 
  • #8
hmm komisch

also bei mir geht alles

oke versuchs mal so:

Code:
Option Explicit
Sub markiere()
'Variabel deklaration
Dim reihe As Long, bereich As String
bereich = 

For reihe = 1 To ThisWorkbook.ActiveSheet.UsedRange.Rows.Count
->kontrolle ob alle spalten von A bis E leer sind
 If Cells(reihe, 1).Value <>  And Cells(reihe, 2).Value <>  And Cells(reihe, 3).Value <>  And Cells(reihe, 4).Value <>  And Cells(reihe, 5).Value <>  Then
 ->wenn das der Fall ist wird die zeile gespeichert in der Variabel bereich
  If bereich =  Then
   bereich = reihe & : & reihe
  Else
   bereich = reihe & : & reihe & , & bereich
  End If
 End If

Next
ThisWorkbook.ActiveSheet.Range(bereich).Select

End Sub

sorry für das gepröbel ... :-[
 
  • #9
hat leider wieder nicht geklappt
fehlermeldung:
anwendungs- oder objektdefinierter Fehler.

oder hat das was mit meiner office version zu tun?
ich benutze office 2003
der debugger markert mir:
ThisWorkbook.ActiveSheet.Range(bereich).Select an.

aber danke für deine hilfe erst mal...

hätte ich im unterricht doch mal besser aufgepasst, dann könnte ich es vielleicht selber....

jason :-X
 
  • #10
to billy...

also deine zweite variante habe ich jetzt doch ans laufen bekommen.
und das ist auch schon fast das was ich brauche.
das nur die zellen markiert werden die gefüllt sind.
kann man die spalten nicht noch begrenzen auf A bis D?

dann wäre es perfekt

mfg

jason ;D :D
 
  • #11
sicherschon ^^

du musst einfach And Cells(reihe, 5).Value <> das hier löschen.

dass einfach die IF Abfrage so aussieht:

If Cells(reihe, 1).Value <> And Cells(reihe, 2).Value <> And Cells(reihe, 3).Value <> And Cells(reihe, 4).Value <> Then

mfg billy
 
  • #12
klappt nich so ganz, aber liegt wohl an mir...
ich nehm deinen anderen vorschlag gerne an, und meld mich gegen abend
noch mal....

thx 2 U

jason
 
  • #13
schreib mal das makro was bislang funktioniert ^^
 
  • #14
die variation funtz mit einer kleinen tabelle:
Option Explicit
Sub markiere()
'Variabel deklaration
Dim reihe As Long, bereich As String
bereich =

For reihe = 1 To ThisWorkbook.ActiveSheet.UsedRange.Rows.Count
 ->kontrolle ob alle spalten von A bis E leer sind
  If Cells(reihe, 1).Value <> And Cells(reihe, 2).Value <> And Cells(reihe, 3).Value <> And Cells(reihe, 4).Value <> And Cells(reihe, 5).Value <> Then
   ->wenn das der Fall ist wird die zeile gespeichert in der Variabel bereich
    If bereich = Then
      bereich = reihe & : & reihe
    Else
      bereich = reihe & : & reihe & , & bereich
    End If
  End If

Next
ThisWorkbook.ActiveSheet.Range(bereich).Select

End Sub

leider nicht bei einer großen datenmenge.

ich muss jetzt eben meine arbeit beenden. melde mich später....

thx

jason ;D :D
 
  • #15
Code:
Sub markiere()
'Variabel deklaration
Dim reihe As Long, bereich As String
bereich = 

For reihe = 1 To ThisWorkbook.ActiveSheet.UsedRange.Rows.Count
->kontrolle ob alle spalten von A bis E leer sind
 If Cells(reihe, 1).Value <>  And Cells(reihe, 2).Value <>  And Cells(reihe, 3).Value <>  And Cells(reihe, 4).Value <>  Then
 ->wenn das der Fall ist wird die zeile gespeichert in der Variabel bereich
  If bereich =  Then
   bereich = reihe & : & reihe
  Else
   bereich = reihe & : & reihe & , & bereich
  End If
 End If

Next
ThisWorkbook.ActiveSheet.Range(bereich).Select

End Sub

hier bitte schön
 
  • #16
jetzts hat es geklappt...

danke dir...

mfg

jason ;D
 
Thema:

Makro bestimme zellen markieren

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.838
Beiträge
707.961
Mitglieder
51.491
Neuestes Mitglied
haraldmuc
Oben