Avatar billede acw Nybegynder
10. september 2003 - 11:31 Der er 8 kommentarer og
1 løsning

indsæt data fra fil

som nogle af jer nok ved, er jeg i gang med et timeregistreringsprogram.

jeg fik hjælp til at lave en knap der hiver data ud af et ark, opretter et nyt og gemmer dette.

Nu skal processen så ske baglæns, dvs de gemte data skal tilbage ind i regnearket. Jeg har prøvet at lege lidt med en makro, men den vil sgu ikke rigtig som jeg vil.

foreløbigt ser min knap sådan her ud:

-------------------------------------------------

Sub loadundone_Click()

If Range("D2").Value = "" Then
    MsgBox "Der er ikke angivet et navn!", vbCritical
    Exit Sub
    End If

Dim map As String

map = "c:\timeregistrering\databaser\" & Range("D3").Value

If Dir(map, vbDirectory) = "" Then MkDir map

a = Dir(map & "\*.csv")
If a = "" Then
MsgBox "Du har ikke gemt nogen filer", vbCritical
Exit Sub
End If

ChDir map

Filnavn = Application.GetOpenFilename("Ufærdige skemaer (*.csv), *.csv", , "Vælg skema")

If Filnavn = False Then
  Exit Sub
  Else
  Workbooks.Open (Filnavn)
End If


Windows(1).Activate
    Range("A1:C30").Select
    Selection.Copy
    Windows("Timeregistrering.xls").Activate
    ActiveSheet.Paste
    Windows(1).Activate
    Range("E1:E30").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Timeregistrering.xls").Activate
    Range("F9").Select
    ActiveSheet.Paste
    Windows(1).Activate
    ActiveWindow.Close
    Range("B8:F38").Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    Range("F8:F38").Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    Range("B9").Select



End Sub

-----------------------------------
eventuelt kan formateringslinierne fjernes, da de jo ikke er problemet.

Jeg har på fornemmelsen at problemet opstår når man åbner filen, da dette ark så bliver aktiveret med det samme ( arket med makroen er dermed ikke længere aktiveret når der skal udføres den første kommando efter åbning)
Avatar billede bak Forsker
10. september 2003 - 12:06 #1
Hvad hedder det ark du kopierer over i ?  (i "Timeregistrering.xls")
Avatar billede acw Nybegynder
10. september 2003 - 12:28 #2
filen jeg kopierer over i hedder Timeregistrering.xls. arket hedder "Timer"
Avatar billede aheiss Praktikant
10. september 2003 - 12:29 #3
Svært at gennemskue men prøv at udskifte :

Windows(1).Activate
    Range("A1:C30").Select
    Selection.Copy
    Windows("Timeregistrering.xls").Activate
    ActiveSheet.Paste
    Windows(1).Activate
    Range("E1:E30").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Timeregistrering.xls").Activate
    Range("F9").Select
    ActiveSheet.Paste
    Windows(1).Activate
    ActiveWindow.Close

med :

    Range("A1:C30").Copy
    ActiveWindow.ActivateNext
        ActiveSheet.Paste Destination:=Range("b8")
        ActiveWindow.ActivateNext
        Range("E1:E30").Copy
    ActiveWindow.ActivateNext
        ActiveSheet.Paste Destination:=Range("f8")
    ActiveWindow.ActivateNext
    ActiveWindow.Close
Avatar billede acw Nybegynder
10. september 2003 - 12:31 #4
tester lige så.
Avatar billede bak Forsker
10. september 2003 - 12:33 #5
Sub loadundone_Click()
Dim wbcsv As Workbook
Dim wks2 As Worksheet
Set wks2 = Workbooks("timeregistrering.xls").Sheets("VedIkke")' ændrer du selv

If wks2.Range("D2").Value = "" Then
    MsgBox "Der er ikke angivet et navn!", vbCritical
    Exit Sub
    End If

Dim map As String

map = "c:\timeregistrering\databaser\" & Range("D3").Value

If Dir(map, vbDirectory) = "" Then MkDir map

a = Dir(map & "\*.csv")
If a = "" Then
    MsgBox "Du har ikke gemt nogen filer", vbCritical
    Exit Sub
End If

ChDir map

Filnavn = Application.GetOpenFilename("Ufærdige skemaer (*.csv), *.csv", , "Vælg skema")

If Filnavn = False Then
  Exit Sub
  Else
  Set wbcsv = Workbooks.Open(Filnavn)
End If
   
    wbcsv.Sheets(1).Range("A1:C30").Copy wks2.Range("A1")
    wbcsv.Sheets(1).Range("E1:E30").Copy wks2.Range("F9")
    wbcsv.Close savechanges:=False
   
    wks2.Range("B8:F38").Select
End Sub
Avatar billede acw Nybegynder
10. september 2003 - 12:46 #6
Det ovenstående behøves slet ikke. Din første ændring virkede fint.

skriv svar for point.

tak
Avatar billede aheiss Praktikant
10. september 2003 - 12:49 #7
Nu var det vist mig der svarede den første ændring. Men vi kan jo dele points.
Mig for at vælge B8 i indsættelsesarket, og BAK fordi det bare er en smartere måde at kopiere på.
Avatar billede acw Nybegynder
10. september 2003 - 12:50 #8
ah hov, havde ikke set det var to forskellige
Avatar billede bak Forsker
10. september 2003 - 13:00 #9
Arh, der er iorden... aheiss skal have pointene. Han var først med det rigtige svar.

Pas iøvrigt lidt på med Windows(1) benævelsen. Det er bedre at referere til specifikke workbooks og sheets.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester