Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
832to836
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
832to836
832to836
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Wenn Dann Makro

Wenn Dann Makro
03.01.2007 22:21:06
Markus
Hallo...
ich hätte leider wieder mal ein Problem. der code den du mir geschickt hast war toll und hat funktioniert.
die sortierfunktion geht dann richtig wenn spalte A u. B befüllt sind, sonst würfelt es alles durcheinander. ich möchte jedoch bevor die sortierfunktion beginnt eine überprüfung machen ob alle zeilen befüllt sind. es soll eine fehlermeldung kommen und der vorgang abgebrochen werden falls das nicht der Fall ist.
nach dem motto: (nur halt als makro)
WENN: in spalte A oder B der Wert DANN: msgbox "Bitte alle zellen befüllen" und makro ABBRECHEN
SONST:

Sub sortierenkome()
Dim lngEnde As Long
lngEnde = Worksheets("Tabelle1").Range("A65536").End(xlUp).Row 'letzte gefüllte Zelle in Spalte A
'Sortierung
Range("A8", "BR" & lngEnde).Sort Key1:=Range("A8"), Order1:=xlAscending, Key2:=Range("B8") _
, Order2:=xlAscending, Key3:=Range("C8"), Order3:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _
xlSortNormal
End Sub

https://www.herber.de/bbs/user/39354.xls
Bitte um Hilfe.
lg markus
bitte wieder den ganzen code damit ich weiß wo ich was hinkopieren muss.

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wenn Dann Makro
03.01.2007 22:44:52
Daniel
Hallo
so im Prinzip
die Leerzeilen würd ich allerdings rausschmeissen, Schönheit ist nicht die Stärke von Excel, sowas macht die Programmierung und Bearbeitung nur unnötig kompliziert.
oder braucht ihr Banker den 2-Farben-Hintergrund damit ihr was erkennen könnt ;-)?

Sub sortierenkome()
Dim lngEnde As Long
Dim a As Long
lngEnde = Worksheets("Tabelle1").Range("A65536").End(xlUp).Row 'letzte gefüllte Zelle in Spalte A
a = WorksheetFunction.CountA(Range("A8:B" & lngEnde))
If a  = Range("A8:B" & lngEnde).Cells.Count Then
'Sortierung
Range("A8", "BR" & lngEnde).Sort Key1:=Range("A8"), Order1:=xlAscending, Key2:=Range("B8") _
, Order2:=xlAscending, Key3:=Range("C8"), Order3:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _
xlSortNormal
Else
MsgBox ("Bitte alle Namensfelder ausfüllen")
range("A8:B" & lngEnde).specialcells(xlcelltypeblanks).select
End If
End Sub

Gruß, Daniel
Anzeige
AW: Wenn Dann Makro
05.01.2007 11:14:06
Markus
Hey du bist genial...
nur noch ein kleiner schönheitsfehler :-) (und das kann excel sicher) und banker habens einfach nur gern abwechslungsreich *g*; würde dir glatt ein bier zahlen wenn du in der nähe wärst.
schönheitsfehler: es schaltet sich nach der msgbox
bei letzten zeilen
range("A8:B" & lngEnde).specialcells(xlcelltypeblanks).select
immer der debugger ein und wird gelb hinterlegt. wenn ich den blattschutz aufhebe funktioniert wieder alles. den blattschutz brauch ich aber.
ich versteh das nicht ganz, da bei lngEnde eh definiert ist wie weit die Spalte B geht.
"range" verstehe ich ja noch aber was bewirkt das specialcells(xlcelltypeblanks).select?
hier nochmal der bereits geänderte code:
https://www.herber.de/bbs/user/39404.xls
PS:
die leerzeilen brauch ich weil ich es nicht anders geschafft habe immer 2 zeilen bei der sortierung als einheit zu betrachten und ich brauche aber 2. nächstes problem es hat mir dann wenn in den leerzeilen nicht der gleiche text wie in der zeile darunter war bei der sortierung alles durcheinandergehaut. also wie soll ich da die leerzeilen löschen?
Anzeige
AW: Wenn Dann Makro
05.01.2007 18:50:43
Daniel
Hallo
die letzte Zeile sollte eigentlich nur alle leeren Zellen markieren, damit der Anwender weiß, wo noch was fehlt. Genau das macht Specialcells(xlcelltypeblanks). Wenn das mit dem Blattschutz kollidiert, dann nimm die Zeile einfach raus.
Ansonsten könntest du noch mit
Activesheet.protect und Activesheet.unprotect den Passwordschutz im Marko aufheben und wieder setzen.
Für die Anzeige wärs aber effektiver, mit der Bedingten Formatierung einen Hinweis zu geben, dann siehts man es sofort.
zur letzten Frage.
wenn du die "LEERZeilen löschen willst, geht das auch ganz einfach, denn die Zellen sind ja nicht leer,sondern beinhalten formeln:
- Bearbeiten - Gehe zu - Inhalte - Formeln
- Bearbeiten - Zellen löschen - Ganze Zeilen
Wenn du trotzdem noch das 2-Farb-Muster in der Darstellung haben willst, geht das auch recht einfach über die Bedingte Formatierung.
- alle relevanten Zellen markieren
- auf Format - Bedingte Formatierung - Formel ist gehen.
- dort die Formel eingeben: =REST(ZEILE();2)=1
- dann ne schöne Farbe raussuchen.
Dann erscheint jede 2. Zeile in dieser Farbe
Gruß, Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige