Ik heb een macro die er voor zorgt dat er een rij ingevoegd wordt en dat de formules op de nieuwe rij gekopieerd worden.
Maar als ik meerdere tabbladen selecteer om een rij in te voegen, dan gaat er iets niet goed. De gegevens van andere rijen veranderen en dat kan natuurlijk niet.
Hieronder staat de macro, ik selecteer altijd eerst een rij voordat ik de macro start. Dus de optie van het selecteren van een cel kan eruit, maar ik weet niet goed wat ik dan kan weglaten. ook zou het geen probleen zijn als er altijd maar een rij ingevoegd kan worden. Hierdoor kan er misschien nog meer verwijderd worden uit de macro. Ik denk maar altijd hoe minder regels hoe minder fouten er kunnen ontstaan.
Dit is de code:
Sub InsertRowsAndFillFormulas(Optional vRows As Long)
' Documented: http://www.mvps.org/dmcritchie/excel/insrtrow.htm
' Re: Insert Rows -- 1997/09/24 Mark Hill
'Dim vRows As Integer
' row selection based on active cell -- rev. 2000-09-02 David McRitchie
ActiveCell.EntireRow.Select 'So you do not have to preselect entire row
If vRows <> 1 Then
vRows = Application.InputBox(prompt:= _
"How many rows do you want to add?", Title:="Add Rows", _
Default:=1, Type:=1) 'type 1 is number
If vRows = False Then Exit Sub
End If
'if you just want to add cells and not entire rows
'then delete ".EntireRow" in the following line
'rev. 2001-01-17 Gary L. Brown, programming, Grouped sheets
Dim sht As Worksheet, shts() As String, i As Integer
ReDim shts(1 To Worksheets.Application.ActiveWorkbook. _
Windows(1).SelectedSheets.Count)
i = 0
For Each sht In _
Application.ActiveWorkbook.Windows(1).SelectedSheets
Sheets(sht.Name).Select
i = i + 1
shts(i) = sht.Name
Selection.Resize(rowsize:=2).Rows(2).EntireRow. _
Resize(rowsize:=vRows).Insert Shift:=xlDown
Selection.AutoFill Selection.Resize( _
rowsize:=vRows + 1), xlFillDefault
On Error Resume Next 'to handle no constants in range -- John McKee 2000/02/01
' to remove the non-formulas -- 1998/03/11 Bill Manville
Selection.Offset(1).Resize(vRows).EntireRow. _
SpecialCells(xlConstants).ClearContents
Next sht
Worksheets(shts).Select
End Sub
groetjes
Juul
Maar als ik meerdere tabbladen selecteer om een rij in te voegen, dan gaat er iets niet goed. De gegevens van andere rijen veranderen en dat kan natuurlijk niet.
Hieronder staat de macro, ik selecteer altijd eerst een rij voordat ik de macro start. Dus de optie van het selecteren van een cel kan eruit, maar ik weet niet goed wat ik dan kan weglaten. ook zou het geen probleen zijn als er altijd maar een rij ingevoegd kan worden. Hierdoor kan er misschien nog meer verwijderd worden uit de macro. Ik denk maar altijd hoe minder regels hoe minder fouten er kunnen ontstaan.
Dit is de code:
Sub InsertRowsAndFillFormulas(Optional vRows As Long)
' Documented: http://www.mvps.org/dmcritchie/excel/insrtrow.htm
' Re: Insert Rows -- 1997/09/24 Mark Hill
'Dim vRows As Integer
' row selection based on active cell -- rev. 2000-09-02 David McRitchie
ActiveCell.EntireRow.Select 'So you do not have to preselect entire row
If vRows <> 1 Then
vRows = Application.InputBox(prompt:= _
"How many rows do you want to add?", Title:="Add Rows", _
Default:=1, Type:=1) 'type 1 is number
If vRows = False Then Exit Sub
End If
'if you just want to add cells and not entire rows
'then delete ".EntireRow" in the following line
'rev. 2001-01-17 Gary L. Brown, programming, Grouped sheets
Dim sht As Worksheet, shts() As String, i As Integer
ReDim shts(1 To Worksheets.Application.ActiveWorkbook. _
Windows(1).SelectedSheets.Count)
i = 0
For Each sht In _
Application.ActiveWorkbook.Windows(1).SelectedSheets
Sheets(sht.Name).Select
i = i + 1
shts(i) = sht.Name
Selection.Resize(rowsize:=2).Rows(2).EntireRow. _
Resize(rowsize:=vRows).Insert Shift:=xlDown
Selection.AutoFill Selection.Resize( _
rowsize:=vRows + 1), xlFillDefault
On Error Resume Next 'to handle no constants in range -- John McKee 2000/02/01
' to remove the non-formulas -- 1998/03/11 Bill Manville
Selection.Offset(1).Resize(vRows).EntireRow. _
SpecialCells(xlConstants).ClearContents
Next sht
Worksheets(shts).Select
End Sub
groetjes
Juul