• 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.

macro werkt wel in ene sheet, maar niet als je hem kopieerd naar andere sheet??

Status
Niet open voor verdere reacties.

universe

Gebruiker
Lid geworden
6 feb 2007
Berichten
99
ik heb een bestand met 2 sheets, op de ene sheet staan bronnen voor de 1e sheet. nu heb ik een macro werkende in de bron-sheet maar als ik die kopieer en insert in andere sheet, werkt hij niet meer.

Wie helpt me uit de brand ??

dit staat dus bij sheets in de bron-sheet

Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    With Target
        If Not Intersect(.Range("A1"), Range("I1:L1")) Is Nothing Then
            If Range("L1").Value <= 7 Then
                Range("L1").Offset(0, 1).Select
                ActiveCell.FormulaR1C1 = "Nap"
                ActiveCell.Offset(0, 1).Select
                ActiveCell.FormulaR1C1 = "Nap"
                ActiveCell.Offset(0, 1).Select
                ActiveCell.FormulaR1C1 = "Nap"
                ActiveCell.Offset(0, 1).Select
                ActiveCell.FormulaR1C1 = "Nap"
                ActiveCell.Offset(0, 1).Select
                ActiveCell.FormulaR1C1 = "Nap"
                ActiveCell.Offset(0, 2).Select
                ActiveCell.FormulaR1C1 = "Nap"
                ActiveCell.Offset(0, 2).Select
                ActiveCell.FormulaR1C1 = "Nap"
                ActiveCell.Offset(0, 1).Select
                ActiveCell.FormulaR1C1 = "Nap"
                ActiveCell.Offset(0, 1).Select
                ActiveCell.FormulaR1C1 = "Nap"
                ActiveCell.Offset(0, 1).Select
                ActiveCell.FormulaR1C1 = "Nap"
                ActiveCell.Offset(0, 1).Select
                ActiveCell.FormulaR1C1 = "Nap"
                ActiveCell.Offset(0, -13).Select
            
            Else
            Range("M1").Resize(1, 11).Replace What:="Nap", Replacement:="", LookAt:=xlWhole
            
            End If
        End If
    End With
End Sub

Hoe krijg ik dat die ook werkt in de hoofdsheet als ik rijen toevoeg met mijn eigen gemaakte knop?

(check bijlage voor complete file)

alvast bedankt
 

Bijlagen

Beste universe,

De macro werkt prima, maar je formule klopt denk ik niet. In cel L1 staat:
=ALS(OF(I1="";J1="";K1="");"";VERT.ZOEKEN(I1;keuze_kans2;2;0)*VERT.ZOEKEN(J1;keuze_ernst2;2;0)*VERT.ZOEKEN(K1;keuze_ontdekking2;2;0))

Dat betekent dat er pas iets in L1 komt te staan als èn I1 niet leeg is, èn J1 niet leeg is, èn K1 niet leeg is. Is dat de bedoeling?
Zodra ik deze drie cellen vul met een aarde sprint L1 op 1 en komt overal NAP te staan.

Groeten,
Richard
 
klopt, in sheet 2 werkt hij compleet naar behoren, maar als je naar mijn main sheet kijkt zie je dat ik een macro met knop heb gemaakt om rijen in te voegen.

Als ik daar een rij invoeg, dan werkt het hele nap systeem niet. Dus in in dain sheet werkt hij niet, maar in de bron-sheet(sheet2) wel.
 
ik ben eens verder gaan prutsen en heb gemerkt dat er variabelen aan te pas moeten te komen om het hele verhaal te laten werken.

Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    With Target
        If Not Intersect(.Range("A1"), Range("I8:L8")) Is Nothing Then
            If Range("L8").Value <= 7 Then
                Range("L8").Offset(0, 1).Select
                ActiveCell.FormulaR1C1 = "Nap"
                ActiveCell.Offset(0, 1).Select
                ActiveCell.FormulaR1C1 = "Nap"
                ActiveCell.Offset(0, 1).Select
                ActiveCell.FormulaR1C1 = "Nap"
                ActiveCell.Offset(0, 1).Select
                ActiveCell.FormulaR1C1 = "Nap"
                ActiveCell.Offset(0, 1).Select
                ActiveCell.FormulaR1C1 = "Nap"
                ActiveCell.Offset(0, 2).Select
                ActiveCell.FormulaR1C1 = "Nap"
                ActiveCell.Offset(0, 2).Select
                ActiveCell.FormulaR1C1 = "Nap"
                ActiveCell.Offset(0, 1).Select
                ActiveCell.FormulaR1C1 = "Nap"
                ActiveCell.Offset(0, 1).Select
                ActiveCell.FormulaR1C1 = "Nap"
                ActiveCell.Offset(0, 1).Select
                ActiveCell.FormulaR1C1 = "Nap"
                ActiveCell.Offset(0, 1).Select
                ActiveCell.FormulaR1C1 = "Nap"
                ActiveCell.Offset(0, -13).Select
            
            Else
            Range("M8").Resize(1, 11).Replace What:="Nap", Replacement:="", LookAt:=xlWhole
            
            End If
        End If
    End With
End Sub

ik heb idee dat ik overal waar nu een 8 staat in de code hierboven, die 8 moet vervangen door een variabele van het rijnummer.:rolleyes:

Iemand een idee hoe ik een macro kan schrijven die het rijnummer uitleest aan de hand van de cel waar je in staat en die in een variabele zet en dat ik deze dan dus in de bovenste formule zet.
 
zou hij er dan zoiets uit moeten zien??

bij mij geeft hij nog een fout
Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    
  Dim rij As Long
    
    With Target
    
    rij = ActiveCell.Row
    
    
        If Not Intersect(.Range("A1"), Range("I" & rij : "L" & rij)) Is Nothing Then
            If Range("L" & rij).Value <= 7 Then
                Range("L" & rij).Offset(0, 1).Select
                ActiveCell.FormulaR1C1 = "Nap"
                ActiveCell.Offset(0, 1).Select
                ActiveCell.FormulaR1C1 = "Nap"
                ActiveCell.Offset(0, 1).Select
                ActiveCell.FormulaR1C1 = "Nap"
                ActiveCell.Offset(0, 1).Select
                ActiveCell.FormulaR1C1 = "Nap"
                ActiveCell.Offset(0, 1).Select
                ActiveCell.FormulaR1C1 = "Nap"
                ActiveCell.Offset(0, 2).Select
                ActiveCell.FormulaR1C1 = "Nap"
                ActiveCell.Offset(0, 2).Select
                ActiveCell.FormulaR1C1 = "Nap"
                ActiveCell.Offset(0, 1).Select
                ActiveCell.FormulaR1C1 = "Nap"
                ActiveCell.Offset(0, 1).Select
                ActiveCell.FormulaR1C1 = "Nap"
                ActiveCell.Offset(0, 1).Select
                ActiveCell.FormulaR1C1 = "Nap"
                ActiveCell.Offset(0, 1).Select
                ActiveCell.FormulaR1C1 = "Nap"
                ActiveCell.Offset(0, -13).Select
            
            Else
            Range("M" & rij).Resize(1, 11).Replace What:="Nap", Replacement:="", LookAt:=xlWhole
            
            End If
        End If
    End With
End Sub
 
Code:
If Not Intersect(.Range("A1"), Range("I" & rij : "L" & rij)) Is Nothing Then

wordt

Code:
If Not Intersect(.Range("A1"), Range("I" & rij).Resize(,3)) Is Nothing Then
 
Graag gedaan, maar kijk ook eens naar mijn eerdere code in de andere topic om regels zoals

Code:
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "Nap"

weg te werken. Je hoeft niet te selecteren om iets in een cel te zetten. Dit is al genoeg:

Code:
ActiveCell.Offset(0, 1) = "Nap"

Gebruik vervolgens nog Resize zoals hierboven en dan komt het helemaal goed.

Wigi
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan