Avatar billede splokit Nybegynder
06. december 2005 - 11:08 Der er 18 kommentarer og
1 løsning

Hjælp til vb kode

det er som om den laver en fejl hele tiden i "If Workbooks"


Sub CopySheet()

CheckID = Sheets("T").Range("M2")
IDExist = False

WBName = Format(Date, "mmmm")
ShName = Format(Date, "d")
Workbooks.Open Filename:="C:\Test\" & WBName & ".xls"
Workbooks("Splokit2").Activate

If Workbooks(WBName).Worksheets(ShName).Range("K:K").Find(CheckID, LookIn:=xlValues) Is Nothing Then
    LastRow = Workbooks(WBName).Worksheets(ShName).Cells.SpecialCells(xlLastCell).Row
    Sheets("T").Range("C2:O25").Copy Workbooks(WBName).Worksheets(ShName).Range("A" & LastRow + 1)
End If

Workbooks(WBName).Close savechanges:=True

End Sub
Avatar billede eagleeye Praktikant
06. december 2005 - 13:26 #1
Prøv at tilføje .xls til WBname de steder hvor Workbooks bruges:

If Workbooks(WBName & ".xls").Worksheets(ShName).Range("K:K").Find(CheckID, LookIn:=xlValues) Is Nothing Then


Eller det måske lettere at tilføje til variablen WBName så det ikke er så mange steder det skal rettes:

WBName = Format(Date, "mmmm") & ".xls"
ShName = Format(Date, "d")
Workbooks.Open Filename:="C:\Test\" & WBName
Avatar billede splokit Nybegynder
06. december 2005 - 15:20 #2
Nej det gjore ikke noget... bare det samme... :S
Avatar billede splokit Nybegynder
06. december 2005 - 15:31 #3
Kan man lave det på en anden måde!?
Avatar billede eagleeye Praktikant
06. december 2005 - 16:03 #4
Du kan prøve at skrive:

Workbooks(1).xxx
Avatar billede splokit Nybegynder
06. december 2005 - 16:08 #5
hvor!?..

Hvis jeg laver det sådan... laver den ikke nogle fejl men så gør den heller ikke noget... :S

WBName = (Sheets("A").Range("A1"))
ShName = (Sheets("A").Range("B1"))
Workbooks.Open Filename:="C:\excel\" & WBName '.Range("K:K")
Avatar billede eagleeye Praktikant
06. december 2005 - 16:25 #6
Prøv at skrive tallet 1 i stedet for variablen WBName eks:

If Workbooks(1).Worksheets(ShName).Range("K:K").Find(CheckID, LookIn:=xlValues) Is Nothing Then
Avatar billede splokit Nybegynder
06. december 2005 - 16:34 #7
Lvaer bare samme fejl...
Avatar billede splokit Nybegynder
06. december 2005 - 16:34 #8
laver*
Avatar billede splokit Nybegynder
06. december 2005 - 16:43 #9
Kan man bruge en anden kode!?
Avatar billede splokit Nybegynder
06. december 2005 - 16:56 #10
Denne virker nu!? kan vi så ikke lige få den til kun at rækker ud fra C2:C25 Hvis de hav værdi og lave fed ramme om når den sætter det ind Rammen skal være + 6 Celler til højer!?

Sub CopySheet()

CheckID = Sheets("T").Range("M2")
IDExist = False

WBName = Format(Date, "mmmm") & ".xls"
ShName = Format(Date, "d")
Workbooks.Open Filename:="C:\excel\" & WBName
Workbooks("vognx.xls").Activate

If Workbooks(WBName).Worksheets(ShName).Range("K:K").Find(CheckID, LookIn:=xlValues) Is Nothing Then
    LastRow = Workbooks(WBName).Worksheets(ShName).Cells.SpecialCells(xlLastCell).Row
    Sheets("T").Range("C2:O25").Copy Workbooks(WBName).Worksheets(ShName).Range("A" & LastRow + 1)
End If

Workbooks(WBName).Close savechanges:=True

End Sub
Avatar billede splokit Nybegynder
06. december 2005 - 17:04 #11
Kom med et svar Eagleeye
Avatar billede eagleeye Praktikant
06. december 2005 - 17:07 #12
ok, så må det være i dene linie at source range skal rettes:

  Sheets("T").Range("C2:O25").Copy Workbooks(WBName).Worksheets(ShName).Range("A" & LastRow + 1)

Til:
  Sheets("T").Range("C2:C25").Copy Workbooks(WBName).Worksheets(ShName).Range("A" & LastRow + 1)
Avatar billede splokit Nybegynder
06. december 2005 - 17:13 #13
Det er kun Hvis der er værdi i c2:C6= Copy C2:O6 Hvis der er værdi i C2:C8 Bliver det til C2:O8
Avatar billede eagleeye Praktikant
06. december 2005 - 17:32 #14
Kan du så bruge dette:

if Application.Count(Columns("C7:C8")) > 0 then
  Sheets("T").Range("C2:O8").Copy Workbooks(WBName).Worksheets(ShName).Range("A" & LastRow + 1)
elseif Application.Count(Columns("C2:C6")) > 0 then
  Sheets("T").Range("C2:O6").Copy Workbooks(WBName).Worksheets(ShName).Range("A" & LastRow + 1)
end if
Avatar billede splokit Nybegynder
06. december 2005 - 17:40 #15
Tænker mere på en shift+Ctrl+ned på C2 & ud til O?
for der kan være data i alle Celler i C2:C25
Avatar billede splokit Nybegynder
06. december 2005 - 17:43 #16
eller sådan noget
Antal = Application.WorksheetFunction.Count(Worksheets("T").Range("C1:C25"))
If Antal > 0 Then
    Sheets("T" & Int((Antal + 1) / 2)).Copy Workbooks(WBName).Worksheets(ShName).Range("A" & LastRow + 1)
End If
Avatar billede eagleeye Praktikant
06. december 2005 - 18:02 #17
Kan du forklare hvad du ønsker for jeg er vist ikke helt med nu. Cellerne C2:C25 skal kopier og der skal en ramme omkring?
Avatar billede splokit Nybegynder
06. december 2005 - 18:07 #18
Det som den skal kopier er det som denne kode mærker den fonktion som koden har vil jeg have med over
    Dim i As Long
    Dim it
    Dim C As Range
    Dim rngUnion As Range
    Dim rngCol As New Collection
    Dim bFound As Boolean

    For Each C In Range("C2:C25")
    If Not IsEmpty(C.Value) Then
            rngCol.Add Item:=C.Offset(, -0).Resize(1, 13)
            bFound = True
        End If
    Next

    If bFound Then
        Set rngUnion = rngCol.Item(1)
        For Each it In rngCol
            Set rngUnion = Union(rngUnion, it)
        Next
       
        rngUnion.Select
    End If
End Sub
Avatar billede splokit Nybegynder
06. december 2005 - 18:58 #19
Den kode som er ovenover mærker ud fra værdier i C2:C25 og ud fra de værdier mærker den ud til O? så den kun mærker seller med værdi i C2:O25. Next Nor den har smidt det ind på det ark som datoen/Faneblad Dagen/A:lastrow hvor den smider det ind A?:M? Efter det skal den lave et offset på -6 så den har Fra A?:S? Det den lige har overført og lave tyn ramme om de celler og fed kant og mærkningen.
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