Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
196to200
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
196to200
196to200
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

For Schleife

For Schleife
30.12.2002 23:12:10
darius
Hallo zusammen,

ja, nochmal ich...ich weißich bin ein Problem fall....
Das ist nun mein Problem:
For byi = 100 To 500 Step 1
On Error GoTo nextt
If RQR_sheet.OLEObjects("cb" & byi).Object.Value = True Then
Anzahl = Anzahl + 1
MsgBox byi
addintoTable (byi)
End If
nextt:
Next byi
Das ist meine For-Schleife, die sollte nach "checkboxen" suchen und schauen ob diese On/off sind. Die Checkboxen fangen alle mit cb an und haben danach eine Zahl....z.B.101,104,203usw. Also nicht jedes 'cb' mit irgend einer Zahl muß eine Checkbox sein. darum die Schleife. Das Problem an dem ganzen ist, das VBA mir die Schleifen ca.6-7 mal durchläuft und dann der fehler '1004' auftritt.
Mittlerweile weiß ich mir keinen Rat, drum bitte ich euch um einen.

Vielen dank + Gruß

Darius

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: For Schleife
30.12.2002 23:23:28
Georg_Zi
Hallo Darius

ich bin nun nicht der Fachman für Steuerelemente in der Tabelle, aber sprchts Du die Tabelle nicht falsch an


Option Explicit

Private Sub CommandButton3_Click()
Dim ByI As Integer
For ByI = 1 To 5
Worksheets("Checkbox Options").OLEObjects("CheckBox" & ByI).Object.Value = True
Next ByI
End Sub

Code eingefügt mit: Excel Code Jeanie

Code Jeanie
Frage
Das Umsetzen nach Html klappt perfekt, auch die Ansicht in den Foren ist gegeben. Bei manchen Foren kann man aber anscheinend nicht den dargestellten Code nach VBA rückkopieren. Warum?
Antwort
Dies liegt nicht an der Code Jeanie !!! Manche Foren interpretieren anscheinend < pre > < /pre > Tags nicht richtig und erzeugen am Zeilenende einen weichen Zeilenumbruch anstatt eines harten Zeilenumbruches. Dies führt dazu, dass im VBA-Editor die Zeilen hintereinander geschrieben werden. Zum Rückkopieren in solchen Fällen: Fügen Sie den kopierten Code aus dem Forum nach Word ein, kopieren Sie ihn dort wieder und fügen Sie ihn dann im VBA - Editor ein

Gruß Georg

Anzeige
Re: For Schleife
30.12.2002 23:44:28
Mischa Richter
naja,
mache ersma nach dem endif und vor dem nextt ein exit sub. wegen der optik.
Die suche nach checkboxen würde ich mit einer foreach-next schleife machen
dim chk as object
for each chk in ....controls
if left(chk.name, 2) ="cb" AND [noch ne bedingung für den
Type/wert der Checkboxen]
then
...
endif

usw.
mischa

Bemerkung
31.12.2002 00:59:08
Ramses
Hallo Mischa,

Wenn du schon, berechtigte oder nicht berechtigte, Korrekturen anbringst, musst du schon schreiben wie es dann besser geht.

1.
Dein Code läuft nicht, weil keine Anweisung drin steht wo er laufen soll,... ganz abgesehen davon ist der Code-Aufbau wohr eher für eine Userform als eine Tabelle gebaut.

2.
Dein Code setzt voraus, das die Checkboxen mit "cb" beginnen, ... und was wenn sie das nicht tun.

3.
Hajo möchte gezielt nur die Checkboxen 1 - 5 testen.
Du testest unter Umständen ein paar hundert, wenn soviele in der Tabelle sind, weil du jedes einzelne Objekt abfrägst.

Welche Variante ist nun besser ?

Gruss Rainer

Anzeige
Re: For Schleife
31.12.2002 01:14:34
darius
Hallo,

und erstmal danke, aber das mit der "For Each chk in...." kenn ich von userform aber hier bei mir handelt es sich um ein ganz normales datensheet... Was setze ich von .contorls? Das verstehe ich noch nicht so ganz, bitte um klärung.
Vielen dank


Darius

Re: Bemerkung
31.12.2002 01:20:56
darius
hallo Reiner,

Also zu 1: wie meinst du das wo er laufen soll? Verstehe ich nciht ganz..

zu 2: ja die checkboxen fangen alle mit cb an. Mein problem ist das sie nicht aufsteigend sind sprich cb100,cb101,cb102...sondern cb101,cb102,cb109,cb127...es sind lücken da!
Also ehrlich gesagt weis ich da auch nicht weiter, und alle Checkboxen einzeln abfragen ohne schleich finde ich nicht so toll.

Viele grüße darius

Anzeige
Re: Bemerkung
31.12.2002 08:29:32
Georg_Zi
Hallo Darius

eine entscheidene Sache hast Du noch vergessen, willst Du all abfragen oder nur bestimmte??

Für alle


Option Explicit

Private Sub CommandButton1_Click()
Dim I As Integer
Dim J As Integer
For I = 1 To Shapes.Count
If Mid(Shapes(I).Name, 1, 5) = "Check" Then
If ActiveSheet.OLEObjects("CheckBox" & I).Object.Value = True Then J = J + 1
End If
Next I
End Sub

Code eingefügt mit: Excel Code Jeanie

Code Jeanie
Frage
Das Umsetzen nach Html klappt perfekt, auch die Ansicht in den Foren ist gegeben. Bei manchen Foren kann man aber anscheinend nicht den dargestellten Code nach VBA rückkopieren. Warum?
Antwort
Dies liegt nicht an der Code Jeanie !!! Manche Foren interpretieren anscheinend < pre > < /pre > Tags nicht richtig und erzeugen am Zeilenende einen weichen Zeilenumbruch anstatt eines harten Zeilenumbruches. Dies führt dazu, dass im VBA-Editor die Zeilen hintereinander geschrieben werden. Zum Rückkopieren in solchen Fällen: Fügen Sie den kopierten Code aus dem Forum nach Word ein, kopieren Sie ihn dort wieder und fügen Sie ihn dann im VBA - Editor ein

Gruß Georg

Anzeige
Re: Bemerkung
31.12.2002 11:52:21
darius
Guten Morgen,

Ja also, da ích ja nicht wissen kann wieviele der user anklickt, muß ich zwangsläufig alle abfragen,oder gibts da ne andere möglickeit?
Das script habe ich ausprobiert jedoch tut es nicht wirklich. Ich weiß auch nicht warum, es läuft zwar, aber es bringt mir keine Resultate.

Gruß darius

Re: Bemerkung
31.12.2002 11:55:54
Hajo_Zi
Hallo Darius

wohin hast Du den Code kopiert??
Ist das Tabellenblatt richtig angesprochen??
Die ausführliche Variante hatten wir doch schon mal. Versuche es damit.

Gruß Hajo

Re: Bemerkung
31.12.2002 12:09:12
darius
Hi Hajo,

also der code befindet sich direkt unter dem tabellen blatt,sprich wenn ich auf den button drück, wird dieser dann ausgeführt.
Wie auch immer, ich glaube das ist noch zu hoch für mich, ich check grad wirklich nicht was ich da noch ändern könnte.
Mein Code:
Dim I As Integer
Dim J As Integer
For I = 1 To Shapes.Count
show1 = Left(Shapes(I).Name, 1, 5) = "cb"
If Mid(Shapes(I).Name, 1, 5) = "check" Then
If ActiveSheet.OLEObjects("CheckBox" & I).Object.Value = True Then
J = J + 1
End If
End If
Next I
Also ich habe da nicht wirklich was verändert. Jedoch findet es mir 40 Items aber keine checkboxn....

Danke für eure Bemühungen

Darius

Anzeige
Re: Bemerkung
31.12.2002 12:12:17
Hajo_Zi
Hallo Darius

in meinem Beispiel hatte ich die Namen von Excel gelassen CheckBox1 usw. hast Du Deine Namenicht geändert in cb..

was soll diese Zeile
show1 = Left(Shapes(I).Name, 1, 5) = "cb"

If Mid(Shapes(I).Name, 1, 2) = "cb" Then
If ActiveSheet.OLEObjects("Cb" & I).Object.Value = True Then


Gruß Hajo

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige