Autofill - Macro niet werkend als Call, wel individueel

Status
Niet open voor verdere reacties.

Waldorf79

Gebruiker
Lid geworden
7 dec 2011
Berichten
29
Office versie
magDer
Beste,

Onderstaande code is de code voor een formulier.
Kolommen 1 tem 17 worden ingevoerd door middel van tekstvelden en dan opgeslagen via een knop 'opslagen'.
De knop 'sluiten' sluit het formulier en doet een Call naar Macro1.
Macro 1 doet een autofill van 4 cellen waar formules instaan. (kolommen R-U-V-W)

Als de Macro apart wordt uitgevoerd doet hij exact wat verwacht word, maar in de grotere context van het invullen van het formulier, laat hij het afweten...
Geen idee waarom.

Code:
Private Sub Opslaan_Click()

Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("Personeel")

'Eerste lege rij vinden
iRow = ws.Cells.Find(What:="*", SearchOrder:=xlRows, _
    SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1

'Beveiliging op naam
If Trim(Me.Naam.Value) = "" Then
  Me.Naam.SetFocus
  MsgBox "Naam invoeren aub"
  Exit Sub
End If

'copieren van de data naar de database
With ws
  .Cells(iRow, 1).Value = Me.Naam.Value
  .Cells(iRow, 2).Value = Me.Voornaam.Value
  .Cells(iRow, 3).Value = Me.Van.Value
  .Cells(iRow, 4).Value = Me.Tot.Value
  .Cells(iRow, 5).Value = Me.Geboortedatum.Value
  .Cells(iRow, 6).Value = Me.Straat.Value
  .Cells(iRow, 7).Value = Me.Nummer.Value
  .Cells(iRow, 8).Value = Me.Postnummer.Value
  .Cells(iRow, 9).Value = Me.Gemeente.Value
  .Cells(iRow, 10).Value = Me.Rijksregisternummer.Value
  .Cells(iRow, 11).Value = Me.Pensioennummer.Value
  .Cells(iRow, 12).Value = Me.Jaar.Value
  .Cells(iRow, 13).Value = Me.SectorID.Value
  .Cells(iRow, 14).Value = Me.Code.Value
  .Cells(iRow, 15).Value = Me.GraadID.Value
  .Cells(iRow, 16).Value = Me.Opmerkingen.Value
  .Cells(iRow, 17).Value = Me.Stamnummer.Value
End With

'Formulier leegmaken
Me.Naam.Value = ""
Me.Voornaam.Value = ""
Me.Van.Value = ""
Me.Tot.Value = ""
Me.Geboortedatum.Value = ""
Me.Straat.Value = ""
Me.Nummer.Value = ""
Me.Postnummer.Value = ""
Me.Gemeente.Value = ""
Me.Rijksregisternummer.Value = ""
Me.Pensioennummer.Value = ""
Me.Jaar.Value = ""
Me.SectorID.Value = ""
Me.Code.Value = ""
Me.GraadID.Value = ""
Me.Opmerkingen.Value = ""
Me.Stamnummer.Value = ""
Me.Naam.SetFocus

End Sub

'Sluitknop en copie formules cellen R-U-V-W

Private Sub Sluiten_Click()
  Call Macro1
  Unload Me
End Sub

'copie formules cellen R-U-V-W

Sub Macro1()
Dim iRow2 As Long
Dim from As Range
Dim till As Range
Dim till2 As Range
Dim ws As Worksheet
Set ws = Worksheets("Personeel")

iRow2 = ws.Cells.Find(What:="*", SearchOrder:=xlRows, _
    SearchDirection:=xlPrevious, LookIn:=xlValues).Row

  Set from = Cells(ColumnIndex:=18, RowIndex:=iRow2 - 1)
  Set till = Cells(ColumnIndex:=21, RowIndex:=iRow2 - 1)
  Set till2 = Cells(ColumnIndex:=21, RowIndex:=iRow2)
    
  Dim range1 As Range
  Dim range2 As Range
  Set range1 = Range(from, till)
  Set range2 = Range(from, till2)
    
  range1.AutoFill Destination:=range2, Type:=xlFillDefault

End Sub

'foutmelding venster sluiten via kruisje

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
  If CloseMode = vbFormControlMenu Then
    Cancel = True
    MsgBox "Gebruik de sluitknop!"
  End If
End Sub
 
Opslag (enkelvoud), opslagen (meervoud)
Opslaan (werkwoord), opgeslagen(votooid deelwoord).

Zonder voorbeeldbestand geen idee.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan