• 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 niet zoals het moet

Status
Niet open voor verdere reacties.

Valentin

Gebruiker
Lid geworden
14 feb 2009
Berichten
80
Wanneer op het tabblad "Bank" in kolom "A" een datum wordt ingegeven dan wordt de code "TelDagen"voor het blad" Bank" Private Sub Worksheet_Change(ByVal Target As Range) uitgevoerd, echter niet zoals het moet.
Wanneer ik bv. in cel A1 een datum ingeef en dan de routine"TelDagen"die behoort bij Private Sub Worksheet_Change(ByVal Target As Range) uitvoer met F8 dan werkt de code wel naar behoren.
Iemand een idee hoe dat komt?
 

Bijlagen

Het mechanisme werkt en teldagen wordt uitgevoerd. Er wordt ook nog wat geknoeid op sheet Verkoop maar dat blijft op Rij 1. Kan je wat duidelijker zijn in wat er niet gaat zoals je verwacht

Ron
 
Op het blad "Verkoop" moet de datum van blad "Verkoop" kolom A afgetrokken woeden van de datum van blad "Bank" kolom 1 en ingevuld worden in kolom F dit werkt op mijn pc niet, de code Private Sub Worksheet_Change(ByVal Target As Range) van het blad "Bank" wordt uitgevoerd maar zonder het gewenst resultaat. Wanneer ik echter bv. in cel A1 een datum ingeef op het blad "Bank" en dan de routine"TelDagen"die behoort bij Private Sub Worksheet_Change(ByVal Target As Range) uitvoer met F8 dan werkt de code wel naar behoren.
 
anneer ik echter bv. in cel A1 een datum ingeef op het blad "Bank"
Dat is raar want er staat:
Code:
If Target.Row = 1 Then Exit Sub

Op het moment dat je op blad Bank een datum invult en vervolgens een enter doet dan veranderd je active cell.
Bijvoorbeeld, je geeft een datum in cell A2, enter en dan wordt Teldagen actief. in Teldagen staat als tweede statement:
Code:
DatB = ActiveCell.Value
. Je active cell is op dat moment A3 waar je denk ik A2 zou willen hebben

Ron
 
Dank voor de oplossing
Code:
Sub TelDagen()
 Application.EnableEvents = False
DatB = ActiveCell.Offset(-1, 0).Value
ActiveCell.Offset(-1, 3).Select

If ActiveCell.Offset(-1, 3).Value < 2000 Then
    FactNr = ActiveCell.Value
    If (FactNr) >= 2000 Then Exit Sub
      
     Sheets("Verkoop").Select
     Cells(1, 2).Select
    
    Set Dat = Cells.Find(What:=FactNr, After:=ActiveCell, LookIn:=xlValues, _
        LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext _
        , MatchCase:=False)
        With Dat
            .Select
            DatV = ActiveCell.Offset(0, -1).Value
            Selection.Offset(0, 4).Select
           ActiveCell.Value = DatB - DatV
        End With
     End If
     Cells(1, 1).Select
    ActiveWorkbook.Save
     Application.EnableEvents = True
    End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan