Avatar billede petzel Novice
14. februar 2010 - 12:34 Der er 9 kommentarer og
1 løsning

Makro hjælp.. = 200 point

Jeg har udarbejdet en excel fil som jeg benytter som et værktøj i min hverdag:
I denne fil er der en makro som skal oprette en mappe på et drev.

Det funger således:

Man placer sig i celle A i den række som indeholder den mappe som ønskes oprettet.

Når man står i celle A i f.eks række 11 og man aktiver makroen, så oprettes der en mappe på drevet, mappen navngives med teksten i celle Q i den række som man står i for dette tilfælde Q11.

Teksten i celle Q er en sammen sætning af teksten i celle A D F G med nogle mellemrum og tegn mellem.

=CONCATENATE(A11;"  ";D11;" - ";F11;", ";G11) 

Denne "CONCATENATE" funktion går igen 55 gange pr. mdr. 660 gange i filen, det medfører at filen blive meget stor over 31 Mb (jeg ved det for når jeg slettes alle Q cellerne så er filen kun 0,5 Mb)

Jeg ønsker nu denne "CONCATENATE"  funktion indarbejdet i min makro og det er det som jeg behøver hjælp til!

Makroen henter teksten i celle Q ved hjælp af en offset.

---------------------------------------------------------------
Sub Opret_tilbuds_mappe()
'
' Opret_tilbuds_mappe_på_drev Macro
' Macro made by Anders C. Strate 03-01-2010


Dim home As String
home = ActiveCell.Address

Const myFolder As String = "F:\Tilbud\Afdeling 262\2010\"

On Error Resume Next
'MsgBox myFolder & ActiveCell.Offset(0, 16).Value
MkDir myFolder & ActiveCell.Offset(0, 16).Value

If Err.Number > 0 Then
 
  MsgBox "Den ønskede mappe findes allerede ", , "FEJL"
'  MsgBox "Den ønskede mappe findes allerede " & Err.Description

End If
On Error GoTo 0


Range(home).Select
---------------------------------------------------------------


Håber at i forstår mit spørgsmål ?
Avatar billede kabbak Professor
14. februar 2010 - 12:47 #1
=CONCATENATE(A11;"  ";D11;" - ";F11;", ";G11) 
er det samme som
Dim Samlet as string

Samlet =[A11] & "  " & [D11] & " - " & [F11] & ", " & [G11]

hjælper det dig ?
Avatar billede petzel Novice
14. februar 2010 - 12:58 #2
Det kan godt være at det er den vej, men i eks. var det række 11 det kunne lisågodt ha været 12, 20 eller på til 55 forskelige rækker i hver 12 ark.

Så funktionen skal ta udgangspkunt i den række som sen står i, man vil til en hver tid stå i celle A i den række som man nu har valgt. Kan man ikke bruge offset fre celle A ??
Avatar billede kabbak Professor
14. februar 2010 - 13:23 #3
Dim Samlet As String, RW As Long
RW = ActiveCell.Row
Samlet = Cells(RW, "A") & "  " & Cells(RW, "D") & " - " & Cells(RW, "F") & ", " & Cells(RW, "G")
Avatar billede petzel Novice
14. februar 2010 - 13:25 #4
Hvor skal det indskrives i makroen??
Avatar billede petzel Novice
14. februar 2010 - 13:30 #5
Kan man gøre sådan..?? Det virker ikke så der er en fejl i det, nogle som kan rette fejlen??

Sub Opret_tilbuds_mappe()
'
' Opret_tilbuds_mappe_på_drev Macro
' Macro made by Anders C. Strate 03-01-2010


Dim home As String
home = ActiveCell.Address

' Loader celle værdier
Dim T_String_celle_A As String
Dim T_String_celle_D As String
Dim T_String_celle_F As String
Dim T_String_celle_G As String

T_String_celle_A = ActiveCell.Value
ActiveCell.Offset(0, 3).Activate
T_String_celle_D = ActiveCell.Value
ActiveCell.Offset(0, 2).Activate
T_String_celle_F = ActiveCell.Value
ActiveCell.Offset(0, 1).Activate
T_String_celle_G = ActiveCell.Value

Dim Samlet As String

Samlet = [T_String_celle_A] & "  " & [T_String_celle_D] & " - " & [T_String_celle_F] & ", " & [T_String_celle_G]


'Const myFolder As String = "F:\Tilbud\Afdeling 262\2010\"
Const myFolder As String = "C:\Documents and Settings\acst\Desktop\Diverse\TILBUD\test"


On Error Resume Next
'MsgBox myFolder & ActiveCell.Offset(0, 16).Value
'MkDir myFolder & ActiveCell.Offset(0, 16).Value
MkDir myFolder & [T_String_celle_A] & "  " & [T_String_celle_D] & " - " & [T_String_celle_F] & ", " & [T_String_celle_G]

If Err.Number > 0 Then

 
  MsgBox "Den ønskede mappe findes allerede ", , "FEJL"
'  MsgBox "Den ønskede mappe findes allerede " & Err.Description

End If
On Error GoTo 0


Range(home).Select

End Sub
Avatar billede kabbak Professor
14. februar 2010 - 14:51 #6
Sub Opret_tilbuds_mappe()
'
' Opret_tilbuds_mappe_på_drev Macro
' Macro made by Anders C. Strate 03-01-2010


    Dim home As String
    home = ActiveCell.Address
    'Const myFolder As String = "F:\Tilbud\Afdeling 262\2010\"
    Const myFolder As String = "C:\Documents and Settings\acst\Desktop\Diverse\TILBUD\test\" ' HUSK AT AFSLUTTE MED \
    Dim Samlet As String, RW As Long
    RW = ActiveCell.Row
    Samlet = Cells(RW, "A") & "  " & Cells(RW, "D") & " - " & Cells(RW, "F") & ", " & Cells(RW, "G")

    If Dir(myFolder & Samlet, vbDirectory) = "" Then ' tjekker om mappen findes (Bibliotek, ikke fil)
        MkDir myFolder & Samlet ' hvis den ikke findes laves den
    End If

    Range(home).Select

End Sub
Avatar billede kabbak Professor
14. februar 2010 - 14:55 #7
fjern lige disse 2 linjer, de bruges ikke

Dim home As String
    home = ActiveCell.Address
Avatar billede kabbak Professor
14. februar 2010 - 15:23 #8
så er den vist rettet til

Sub Opret_tilbuds_mappe()
'
' Opret_tilbuds_mappe_på_drev Macro
' Macro made by Anders C. Strate 03-01-2010


'Const myFolder As String = "F:\Tilbud\Afdeling 262\2010\"
    Const myFolder As String = "C:\Documents and Settings\hb\Skrivebord\test"
    Dim Samlet As String, RW As Long
    RW = ActiveCell.Row
    Samlet = Cells(RW, "A") & "  " & Cells(RW, "D") & " - " & Cells(RW, "F") & ", " & Cells(RW, "G")
    If Dir(myFolder & "\" & Samlet, vbDirectory) = "" Then    ' tjekker om mappen findes (Bibliotek, ikke fil)
        MkDir myFolder & "\" & Samlet    ' hvis den ikke findes laves den
    End If
    Range(home).Select

End Sub
Avatar billede petzel Novice
14. februar 2010 - 21:54 #9
Det virker!! TAK.

Smid lige et svar
Avatar billede kabbak Professor
15. februar 2010 - 10:59 #10
;-))
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