ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   For... Next (https://www.excelbanter.com/excel-programming/339170-next.html)

Sylvian[_7_]

For... Next
 

Hello,

Does anybody of you know, how I can make the following "For… next"–
string?

This is how it is currently working:

val = Worksheet1.Range("h13").Value
If Worksheet1.Range("h13").Value = "x" Then
Worksheet1.CheckBox6.Value = True
Else
Worksheet1.CheckBox6.Value = False
End If
val = Worksheet1.Range("h14").Value
If Worksheet1.Range("h14").Value = "x" Then
Worksheet1.CheckBox7.Value = True
Else
Worksheet1.CheckBox7.Value = False
End If

This is I want to make it:

Dim iCounter As Integer

For iCounter = 8 To 38

val = Worksheet1.Cells(iCounter,1).Value
If Worksheet1. Cells(iCounter,1).Value = "x" Then
Worksheet1.CheckBox6(iCounter,1).Value = True
Else
Worksheet1.CheckBox6(iCounter,1).Value = False
End If


--
Sylvian
------------------------------------------------------------------------
Sylvian's Profile: http://www.excelforum.com/member.php...o&userid=26730
View this thread: http://www.excelforum.com/showthread...hreadid=401819


Dave Peterson

For... Next
 
You can assign a linked cell to each of your checkboxes, so that if you put True
or False into the cell the associated checkbox will change (checked or not
checked).

But if you want, you could use some code like this:

Option Explicit
Sub testme01()

Dim iCounter As Long
Dim wks As Worksheet
Dim Val As Variant

Set wks = Worksheets("sheet1")

For iCounter = 1 To 3
Val = wks.Cells(iCounter, 1).Value
If LCase(Val) = "x" Then
wks.OLEObjects("CheckBox" & iCounter).Object.Value = True
Else
wks.OLEObjects("checkbox" & iCounter).Object.Value = False
End If
Next iCounter

End Sub

or more simply:

Option Explicit
Sub testme01()

Dim iCounter As Long
Dim wks As Worksheet
Dim Val As Variant

Set wks = Worksheets("sheet1")

For iCounter = 1 To 3
Val = wks.Cells(iCounter, 1).Value
wks.OLEObjects("CheckBox" & iCounter).Object.Value = CBool(LCase(Val) = "x")
Next iCounter

End Sub

But I'm confused on where the cells are and what the associated names are for
each checkbox. You used H13, but then asked about cells(icounter,1) (that 1
means column A).

(I only tested with 3 checkboxes.)

Sylvian wrote:

Hello,

Does anybody of you know, how I can make the following "For… next"–
string?

This is how it is currently working:

val = Worksheet1.Range("h13").Value
If Worksheet1.Range("h13").Value = "x" Then
Worksheet1.CheckBox6.Value = True
Else
Worksheet1.CheckBox6.Value = False
End If
val = Worksheet1.Range("h14").Value
If Worksheet1.Range("h14").Value = "x" Then
Worksheet1.CheckBox7.Value = True
Else
Worksheet1.CheckBox7.Value = False
End If

This is I want to make it:

Dim iCounter As Integer

For iCounter = 8 To 38

val = Worksheet1.Cells(iCounter,1).Value
If Worksheet1. Cells(iCounter,1).Value = "x" Then
Worksheet1.CheckBox6(iCounter,1).Value = True
Else
Worksheet1.CheckBox6(iCounter,1).Value = False
End If

--
Sylvian
------------------------------------------------------------------------
Sylvian's Profile: http://www.excelforum.com/member.php...o&userid=26730
View this thread: http://www.excelforum.com/showthread...hreadid=401819


--

Dave Peterson

Sylvian[_8_]

For... Next
 

Hi Dave,

Thanks for your Help, I'll try this out.

Best Regards,

Sylvian


--
Sylvian
------------------------------------------------------------------------
Sylvian's Profile: http://www.excelforum.com/member.php...o&userid=26730
View this thread: http://www.excelforum.com/showthread...hreadid=401819



All times are GMT +1. The time now is 08:42 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com