ra ra ra?

Status
Niet open voor verdere reacties.

franzeman

Gebruiker
Lid geworden
2 sep 2006
Berichten
98
In mijn Private Sub Worksheet_Change(ByVal Target As Excel.Range) wil ik celwaarden ophalen vanuit een tweede tabblad van dezelfde file.

De gebeurtenis-code wordt tijdens het doorlopen van de macro (op eerste tabblad) correct uitgevoerd t/m de selectie van het andere tabblad. Dit tabblad wordt nog wel geselecteerd, de beveiliging eraf gehaald en dan is het afgelopen:
Fout 1004 (methode Select van Klasse Range mislukt) en over de codetekst
Columns("A:A").Select staat een gele markering(!?)

Vraag: Waarom houdt het hier op en wat is de remedie?

Groetjes van Franzeman
:eek:
 
Wat is je eigenlijke code?

Dit is de (gedeeltelijke) code:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

Dim i As Integer
Dim cell As Range
'Dim MyVar As Variant
'Dim myCell As Range
'Dim Column As Range
Dim myRange As Range
Dim msg As String
Dim Password

Application.ScreenUpdating = False

Password = "tralala"
ActiveSheet.Unprotect Password

If (starting_up = False) Then

'-(1)------------------------------------------------------------------------------------

For Each cell In Target
If ((ActiveCell.row > 34) And (ActiveCell.row < 602)) Then
If ((ActiveCell.Column > 5) And (ActiveCell.Column < 255)) Then
'Alle cellen met ingevulde waarden voorzien van hun correcte opmaakkleur.
If cell.Value = "" Or 0 Then
'voor de rijenafwisseling in wit - lichtblauw tbv de "voorw." opmaak
Target.Interior.ColorIndex = 20
cell.FormatConditions.Delete
cell.Interior.Pattern = xlSolid
cell.FormatConditions.Add Type:=xlExpression, Formula1:="=REST(RIJ();2)=0"
cell.FormatConditions(1).Interior.ColorIndex = 34
Else
'en de "gewone" opmaak
If cell.Value > 0 Then Target.FormatConditions.Delete
If cell.Value > 0 Then cell.Font.Name = "Tahoma"
If cell.Value > 0 Then cell.Font.ColorIndex = 0
If cell.Value > 0 Then cell.Font.Bold = False

'en de rest
If cell.Value = Range("A10") Then cell.Interior.ColorIndex = 35
If cell.Value = Range("A11") Then cell.Interior.ColorIndex = 24
If cell.Value = Range("A12") Then cell.Interior.ColorIndex = 40
If cell.Value = Range("A13") Then cell.Interior.ColorIndex = 36
If cell.Value = Range("A14") Then cell.Interior.ColorIndex = 42
If cell.Value = Range("A15") Then cell.Interior.ColorIndex = 45

End If 'Else If cell.Value = "" Or 0
End If '((ActiveCell.column > 5) And (ActiveCell.column < 255))
End If '((ActiveCell.row > 34) And (ActiveCell.row < 602))
Next cell

'-(2)-----------------------------------------------------------------------------------

For Each cell In Target
If ((ActiveCell.row > 34) And (ActiveCell.row < 602)) Then
If (ActiveCell.Column = 1) Then

Dim mySheet As Object
Set mySheet = Sheets("projecten")
Dim MyColumn As Range
Set MyColumn = Range("A:A")
Dim MyVar As Variant
MyVar = Range("A" & ActiveCell.row).Value

Selection.Activate 'zonder deze regel werkt de macro niet
'Set myCell = Range("A" & ActiveCell.row)

'Sheets("projecten").Select
mySheet.Select
Password = "tralala"
ActiveSheet.Unprotect Password
'Column("A:A").Select
MyColumn.Select
Range("A10").Select

Bij MyColumn blijft ie hangen!

enz.
enz.
enz.


Password = "tralala"
ActiveSheet.Protect Password, True, True, True

Application.ScreenUpdating = True

End Sub
 
Geef misschien best ook het bestandje, zonder belangrijke info uiteraard.
 
Beste Wigi,

Geef misschien best ook het bestandje, zonder belangrijke info uiteraard.

De aangeleverde code maakt deel uit van een, wat mij betreft, zeer complexe macro met bijna 10 modules. Dit bestand kan/mag ik niet sturen. Helaas! En bij het gedeeltelijk versturen, zou een ingewikkelde toelichting op een en ander opleveren...

Wellicht kun je dan misschien antwoord geven op de vraag of je bij/tijdens een 'event' überhaupt een uitstapje (in de code) naar een ander tabblad mag maken en zo ja, hoe declareer je zoiets(?).

Groetjes van franzeman :rolleyes:
 
Misschien is dit de oplossing

mySheet.Columns(1).Select,

als ik dit wijzig werkt het wel.

riks
 
mySheet.Columns(1).Select,

als ik dit wijzig werkt het wel.

riks

Hallo riks,
Ik kom er in mijn antwoord op dit tijdstip natuurlijk niet onderuit je eerst een fantastisch Nieuw Programmeerjaar 2007 toe te wensen en dat je maar hetzelfde mag overkomen als die jongens van YouTube...

Terzake: Ik kom nu inderdaad verder, al snap ik niet waarom jouw opgegeven code wel werkt(!?).
Dat de volledige code nog niet voor de gehele module werkt, ga ik morgen even uitzoeken...

Tot zover vriendelijk bedankt en ik hou jullie (Wigi incluis) op de hoogte,

franzeman :thumb:
 
Doe maar.

Kijk ook eens naar With in de helpfiles: je kan best cell.... afkorten.

Code:
With cell
   If .Value = "" 'gewoon als voorbeeldje bedoeld
   'en rest van de code
End With 'niet vergeten te sluiten

Wigi
 
Doe maar.

Kijk ook eens naar With in de helpfiles: je kan best cell.... afkorten.

Code:
With cell
   If .Value = "" 'gewoon als voorbeeldje bedoeld
   'en rest van de code
End With 'niet vergeten te sluiten

Wigi

Wigi en rik bedankt!
Ik ben er uit.

franzeman :D
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan