• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

For each cell in worksheets

Status
Niet open voor verdere reacties.

Mosselman

Gebruiker
Lid geworden
5 aug 2007
Berichten
61
Beste lezers,

In onderstaande VBA code gebruik ik: For Each cell in Worksheets("....."). De bedoeling is dat alleen in die betreffende sheet wordt gezocht. Het probleem is dat de code niet alleen in de genoemde sheet wordt toegepast, maar ook in alle andere sheets.

Enig idee hoe dit opgelost kan worden?

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address = Range("A5").Address Then _
Sheets("Totaal reparaties").Select
Sheets("Totaal reparaties").Range("C3").Value = "Ranking MM - Alexandrium"
[COLOR="Red"]For Each cell In Worksheets("Totaal reparaties").Range("A5:GZ50")[/COLOR]
If cell.Value = ("MM - Alexandrium") Then
With cell.Interior
.ColorIndex = 6
End With
End If
Next
 
Laatst bewerkt door een moderator:
Dat is al opgelost in je code.

overigens
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  If Target = [A5] Then
     With Sheets("Totaal reparaties")
        .[C3] = "Ranking MM - Alexandrium"
        sq = .[A5:GZ50]
        For j = 1 To UBound(sq)
          For jj = 1 To UBound(sq, 2)
            If sq(j, jj) = "dd" Then c0 = c0 & .Cells(5, 1).Offset(j - 1, jj - 1).Address & ","
          Next
        Next
        .Range(Left(c0, Len(c0) - 1)).Interior.ColorIndex = 6
    End With
  End If
End Sub
 
Laatst bewerkt:
Dat is al opgelost in je code.

overigens
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  If Target = [A5] Then
     With Sheets("Totaal reparaties")
        .[C3] = "Ranking MM - Alexandrium"
        sq = .[A5:GZ50]
        For j = 1 To UBound(sq)
          For jj = 1 To UBound(sq, 2)
            If sq(j, jj) = "dd" Then c0 = c0 & .Cells(5, 1).Offset(j - 1, jj - 1).Address & ","
          Next
        Next
        .Range(Left(c0, Len(c0) - 1)).Interior.ColorIndex = 6
    End With
  End If
End Sub

Bedankt, maar enig idee hoe het komt dat mijn rode regel in de VBA code niet alleen in de sheet kijkt die ik aangegeven heb? In de achterliggende sheets gaat hij ook op zoek naar de genoemde tekst.

:(
 
Bedankt, maar enig idee hoe het komt dat mijn rode regel in de VBA code niet alleen in de sheet kijkt die ik aangegeven heb? In de achterliggende sheets gaat hij ook op zoek naar de genoemde tekst.

:(

Ik kan het probleem niet reproduceren. Mijn testfile zit in bijlage.

Wigi
 

Bijlagen

  • Book3.xls
    37 KB · Weergaven: 20
Dat is al opgelost in je code.

overigens
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  If Target = [A5] Then
     With Sheets("Totaal reparaties")
        .[C3] = "Ranking MM - Alexandrium"
        sq = .[A5:GZ50]
        For j = 1 To UBound(sq)
          For jj = 1 To UBound(sq, 2)
            If sq(j, jj) = "dd" Then c0 = c0 & .Cells(5, 1).Offset(j - 1, jj - 1).Address & ","
          Next
        Next
        .Range(Left(c0, Len(c0) - 1)).Interior.ColorIndex = 6
    End With
  End If
End Sub

Dag Snb

- Van waar komt de "dd" in:
Code:
If sq(j, jj) = "dd" Then

- Iedereen programmeert waarschijnlijk anders, maar ik vind dit:

Code:
For Each cell In Worksheets("Totaal reparaties").Range("A5:GZ50")
    If cell.Value = "MM - Alexandrium" Then cell.Interior.ColorIndex = 6
Next

toch makkelijker / handiger dan:

Code:
        sq = .[A5:GZ50]
        For j = 1 To UBound(sq)
          For jj = 1 To UBound(sq, 2)
            If sq(j, jj) = "dd" Then c0 = c0 & .Cells(5, 1).Offset(j - 1, jj - 1).Address & ","
          Next
        Next
        .Range(Left(c0, Len(c0) - 1)).Interior.ColorIndex = 6

Wigi
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan