Kopiëren van een tabel naar een werkboek met variabele naam, onder bestaande lijnen

Status
Niet open voor verdere reacties.

cindyc

Nieuwe gebruiker
Lid geworden
31 dec 2008
Berichten
4
Wat ik moet doen:

ik heb een tabel in een ene excel werkboek die ingevuld wordt aan de hand van een aantal parameters.

Ik zou deze 'entries' moeten kunnen opslaan in een database op naam van de account manager (dewelke bij het opstarten van het originele werkboek gevraagd wordt en vervolgens opgeslaan).

Wat ik dus nodig heb is dat hij mijn tabel kopieert, het andere werkboek opent, en dit plakt onder wat reeds werd ingevuld...

Wat ik heb zover:

Code:
[COLOR="Navy"]Sub databasing()


Dim sDatabasename As String



sDatabasename = "c:\mijn documenten\" & Range("'Direct Mail tool'!G17") & Format(Now(), "yy") & ".xls"




Workbooks("SPOT V3").Worksheets("summary direct mail").Activate

ActiveSheet.Range("A12").CurrentRegion.Select

Selection.Copy


Workbooks.Open Filename:=sDatabasename


ActiveSheet.Range("A1").CurrentRegion.Select

ActiveCell.Offset(1, 0).Select


[B]Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False[/B]
        
Workbooks("sDatabasename.Name").Close



  ActiveWorkbook.Protect Password:="pricing", _
Structure:=True, Windows:=True
End Sub[/COLOR]

De lijn in bold geeft echter een error...

Iemand een idee wat het probleem kan zijn of hoe ik dit best aanpak?
 
Zoiets:

Code:
Sub databasing()

    Dim sDatabasename As String
    Dim wb As Workbook

    sDatabasename = "c:\mijn documenten\" & Sheets("Direct Mail tool").Range("G17").Value & Format(Now(), "yy") & ".xls"

    With Workbooks("SPOT V3")
    
        .Worksheets("summary direct mail").Range("A12").CurrentRegion.Copy
    
        On Error Resume Next
        Set wb = Workbooks.Open(Filename:=sDatabasename)
        On Error GoTo 0
        
        If Not wb Is Nothing Then
        
            wb.Sheets("[B][U]NAAMVANDESHEET[/U][/B]").Range("A2").PasteSpecial xlValues
            
            Application.CutCopyMode = False
            
            wb.Close True
        
        End If
        
        .Protect Password:="pricing", Structure:=True, Windows:=True
        
        Set wb = Nothing
    
    End With
    
End Sub

Wigi
 
Thanks!

Werkt perfect, behalve dat hij nu wel telkens over hetzelfde heen plakt

en niet onder wat er reeds werd ingevuld...



Toch al een hele grote stap in de goede richting, waarvoor mijn dank :)
 
Thanks!

Werkt perfect, behalve dat hij nu wel telkens over hetzelfde heen plakt

en niet onder wat er reeds werd ingevuld...



Toch al een hele grote stap in de goede richting, waarvoor mijn dank :)


Laat maar zitten, heb het antwoord gevonden.

Functie gedefinieerd om laatste rij te vinden en dan zo m'n range aangepast :D

Een prettig oudejaar nog!


Code:
Function xlLastRow(Optional WorksheetName As String) As Long
     
     '    find the last populated row in a  worksheet
     
    If WorksheetName = vbNullString Then
        WorksheetName = ActiveSheet.Name
    End If
    With Worksheets(WorksheetName)
        xlLastRow = .Cells.Find("*", .Cells(1), xlFormulas, _
        xlWhole, xlByRows, xlPrevious).Row
    End With
     
    End Function
    
    Sub databasing()


    Dim sDatabasename As String
    Dim wb As Workbook

    sDatabasename = "c:\mijn documenten\" & Sheets("Direct Mail tool").Range("G17").Value & Format(Now(), "yy") & ".xls"



    
    With Workbooks("SPOT V3")
    
        .Worksheets("summary direct mail").Range("A12").CurrentRegion.Copy
    
        On Error Resume Next
        Set wb = Workbooks.Open(Filename:=sDatabasename)
        On Error GoTo 0
        
        If Not wb Is Nothing Then
        
            wb.Sheets("sheet1").Cells(xlLastRow + 1, 1).PasteSpecial xlValues
            
            Application.CutCopyMode = False
            
            wb.Close True
        
        End If
        
        .Protect Password:="pricing", Structure:=True, Windows:=True
        
        Set wb = Nothing
    
    End With

End Sub
 
Code:
Sub databasing()
  c0=Sheets("Direct Mail tool").Range("G17").Value & Format(Now(), "yy") & ".xls"
  If dir("c:\mijn documenten\" & c0)<>"" then
    Workbooks.open "c:\mijn documenten\" & c0
    With Workbooks("SPOT V3")
      .sheets("summary direct mail").Range("A12").CurrentRegion.Copy
      With Workbooks(c0)
        .Sheets("sheet1").Cells(rows.count,1).end(xlup).offset(1).PasteSpecial xlValues
        .Close True
      End With
      Application.CutCopyMode = False
      .Protect "pricing", True, True
    End With
  End If
 End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan