Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

debuggen

Forumthread: debuggen

debuggen
04.02.2008 14:46:00
ganz
Hallo,
ich habe ein USERFORM indem ich name und adresse eingebe,
über den übernehmenbutton soll die adresse in der tabelle eingefügt werden und sortiert werden.
in spalte a steht die adresse komplett drin(mit =b2+c2+d2) .
immer wenn ich eine adresse einpflege kommt nun Debuggen und folgender text aus dem unstenstehenden code wird markiert:
Range("B2:E" & lLetzte).Sort _
Key1:=Range("B2"), Order1:=xlAscending, _
Key2:=Range("D2"), Order2:=xlAscending, _
Key3:=Range("C2"), Order3:=xlAscending, _
Header:=xlNo, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom
Kann mir jemand helfen wie ich es richtig machen kann damit dieses debuggen nicht wieder kommt?
Vielen Dank im voraus
ralf
Option Explicit
'
' übernehmen
'

Private Sub CommandButton1_Click()
Dim lLetzte  As Long
If TextBox1.Value = "" Then
MsgBox "Die TextBox1 muss eine Eingabe enthalten!", _
48, "   Hinweis für " & Application.UserName
TextBox1.SetFocus
Exit Sub
End If
If TextBox2.Value = "" Then
MsgBox "Die TextBox2 muss eine Eingabe enthalten!", _
48, "   Hinweis für " & Application.UserName
TextBox2.SetFocus
Exit Sub
End If
If TextBox3.Value = "" Then
MsgBox "Die TextBox3 muss eine Eingabe enthalten!", _
48, "   Hinweis für " & Application.UserName
TextBox3.SetFocus
Exit Sub
End If
If TextBox4.Value = "" Then
MsgBox "Die TextBox4 muss eine Eingabe enthalten!", _
48, "   Hinweis für " & Application.UserName
TextBox4.SetFocus
Exit Sub
End If
Application.ScreenUpdating = False
With Worksheets("Mandanten")
lLetzte = IIf(.Range("A65536")  "", 65536, .Range("A65536").End(xlUp).Row) + 1
If lLetzte 


'
' Eingabeinhalte löschen
'


Private Sub CommandButton2_Click()
Dim iIndex  As Integer
For iIndex = 1 To 4
With Controls("TextBox" & iIndex)
.Value = ""
End With
Next iIndex
CommandButton4.Enabled = False  ' den Änder-Button sperren
End Sub


'
' ändern
'


Private Sub CommandButton4_Click()
Dim lLetzte  As Long
If TextBox1.Value = "" Then
MsgBox "Die TextBox1 muss eine Eingabe enthalten!", _
48, "   Hinweis für " & Application.UserName
TextBox1.SetFocus
Exit Sub
End If
If TextBox2.Value = "" Then
MsgBox "Die TextBox2 muss eine Eingabe enthalten!", _
48, "   Hinweis für " & Application.UserName
TextBox2.SetFocus
Exit Sub
End If
If TextBox3.Value = "" Then
MsgBox "Die TextBox3 muss eine Eingabe enthalten!", _
48, "   Hinweis für " & Application.UserName
TextBox3.SetFocus
Exit Sub
End If
If TextBox4.Value = "" Then
MsgBox "Die TextBox4 muss eine Eingabe enthalten!", _
48, "   Hinweis für " & Application.UserName
TextBox4.SetFocus
Exit Sub
End If
Application.ScreenUpdating = False
With Worksheets("Mandanten")
.Range("A" & FundZeile).Value = Trim(WorksheetFunction.Proper(TextBox4.Value))
.Range("B" & FundZeile).Value = Trim(WorksheetFunction.Proper(TextBox1.Value))
.Range("C" & FundZeile).Value = Trim(WorksheetFunction.Proper(TextBox2.Value))
.Range("D" & FundZeile).Value = Trim(TextBox3.Value) & " " & _
Trim(WorksheetFunction.Proper(TextBox4.Value))
With .Range("B" & FundZeile & ":D" & FundZeile)
.Font.Name = "Arial"
.Font.Size = 12
End With
With .Range("A" & FundZeile & ":G" & FundZeile)
.Interior.ColorIndex = 9
.Font.ColorIndex = 2
End With
lLetzte = IIf(.Range("A65536")  "", 65536, .Range("A65536").End(xlUp).Row) + 1
If lLetzte       Range("B2:E" & lLetzte).Sort _
Key1:=Range("B2"), Order1:=xlAscending, _
Key2:=Range("D2"), Order2:=xlAscending, _
Key3:=Range("C2"), Order3:=xlAscending, _
Key4:=Range("E2"), Order4:=xlAscending, _
Header:=xlNo, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom
Columns("B:E").EntireColumn.AutoFit
End With
Application.ScreenUpdating = True
CommandButton4.Enabled = False  ' den Änder-Button sperren
End Sub



Private Sub CommandButton6_Click()
Unload UserForm10
UserForm4.Show
End Sub


'
' schließen
'


Private Sub Image1_Click()
Unload UserForm10
Call Mandantenpflege_anzeigen
End Sub



Private Sub UserForm_Initialize()
'Userform wird auf die Größe von Excel gezoomt, wobei die
'die Controls entsprechend gezoomt und zentriert werden.
'Uwe Küstner 20070622
Dim Faktor As Single
Dim X As Single, Y As Single
Dim sngL As Single, sngO As Single, sngR As Single, sngU As Single
Dim oC As MSForms.Control
Faktor = Application.Height / (Me.Height - 20)
If Faktor  4 Then Faktor = 4
Me.Width = Application.Width
Me.Height = Application.Height
sngL = Me.Width
sngO = Me.Height
For Each oC In Me.Controls
sngL = Application.WorksheetFunction.Min(sngL, oC.Left)
sngO = Application.WorksheetFunction.Min(sngO, oC.Top)
sngR = Application.WorksheetFunction.Max(sngR, oC.Left + oC.Width)
sngU = Application.WorksheetFunction.Max(sngU, oC.Top + oC.Height)
Next oC
X = (Me.Width - (sngR * Faktor) - (sngL * Faktor)) / 2 / Faktor
Y = (Me.Height - (sngO * Faktor) - (sngU * Faktor) - 20) / 2 / Faktor
Me.Controls.Move X, Y
Me.Zoom = Faktor * 100
End Sub


Anzeige

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: debuggen
04.02.2008 14:51:00
Rudi
Hallo,
du kannst nur nach 3 Kriterien sortieren.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: debuggen
04.02.2008 15:00:32
ganz
hallo rudi,
erst einmal danke für die antwort.
kannst du mir genau sagen was ich machen muß?
danke
ralf

Denn sie wissen nicht, ...
04.02.2008 15:03:00
Rudi
Hallo,
...was sie tun.
Die Zeile mit Key4:= ... löschen.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
AW: Denn sie wissen nicht, ...
04.02.2008 15:27:04
ganz
Hallo,
das habe ich getan, aber es geht trotzdem nicht.
gruss
ralf

AW: Denn sie wissen nicht, ...
04.02.2008 15:36:19
Rudi
Hallo,
dann lass doch mal das lletzte weg. Excel weiß selbst, wie groß die Tabelle ist.

Range("B2").Sort _
Key1:=Range("B2"), Order1:=xlAscending, _
Key2:=Range("D2"), Order2:=xlAscending, _
Key3:=Range("C2"), Order3:=xlAscending, _
Header:=xlNo, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom


Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
AW: Denn sie wissen nicht, ...
04.02.2008 15:44:00
Reinhard
Hallo Rudi,
das soll klappen?
Range("B2").currentRegion.Sort...
eher, beides nicht getestet, da grad kein Excel hier.
Gruß
Reinhard

AW: Denn sie wissen nicht, ...
04.02.2008 15:49:54
Rudi
Hallo,
ohne CurrentRegion geht's auch. Eine einzelne Zelle reicht. Sie muss nur innerhalb der zu sortierenden Tabelle sein.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
AW: Denn sie wissen nicht, ...
04.02.2008 17:48:00
Reinhard
Hallo Rudi,
das war mir völlig neu, danke dir.
Lieben Gruß
Reinhard

AW: Denn sie wissen nicht, ...
04.02.2008 15:50:00
ganz
hallo,
bei mir klappt es nicht.
schade

AW: Denn sie wissen nicht, ...
04.02.2008 15:55:17
Rudi
Hallo,
dann lad doch mal die Mappe hoch.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
AW: Denn sie wissen nicht, ...
04.02.2008 16:15:09
ganz
Hallo Rudi,
hier die mappe, beim ersten userform auf mandanten klicken.
https://www.herber.de/bbs/user/49632.xls
danke für deine hilfe.
gruss
ralf

AW: Denn sie wissen nicht, ...
04.02.2008 16:27:00
Rudi
Hallo,
das Ding strotzt ja vor Fehlern.
FundZeile ist doppelt deklariert.
Diverse Userforms gibt es nicht.
Variablendeklaration nicht im Kopf eines Moduls
Key4:= in der Sortierung
Geh mal im VBE auf Debuggen-Kompilieren von VBA-Projekt und arbeite die Fehler ab.
Glaubst du nicht, dass du dir ein bisschen viel vorgenommen hast?
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
AW: Denn sie wissen nicht, ...
04.02.2008 16:34:41
ganz
hallo,
ich habe die restlichen userforms und module gelöscht, die datei wäre sonst über 4 mb groß gewesen.
kannst du dir bitte mal das mit den mandanten und dem debuggen ansehen?
gruss
ralf

AW: Denn sie wissen nicht, ...
04.02.2008 16:49:41
Rudi
Hallo,
hab ich.
Daraus ist die o.a. Fehlerliste entstanden.
Und setze Header:=xlYes, sonst werden die Überschriften mitsortiert.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
Mehr als 3 Sortierkriterien
04.02.2008 15:09:00
Reinhard
Hi Ralf,
wenn du nach A,B,C,D sortieren willst, so sortiere erst nach den letzten 3, also nach B,C,D, danach die dadurch sortierte Tabelle dann nach A sortieren.
Gruß
Reinhard

AW: Mehr als 3 Sortierkriterien
04.02.2008 15:29:17
ganz
hallo,
was muß ich hier ändern?
danke
ralf
Range("B2:E" & lLetzte).Sort _
Key1:=Range("B2"), Order1:=xlAscending, _
Key2:=Range("D2"), Order2:=xlAscending, _
Key3:=Range("C2"), Order3:=xlAscending, _
Header:=xlNo, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige