Avatar billede FinnLauridsen Forsker
19. maj 2018 - 13:02 Der er 25 kommentarer og
1 løsning

Gem med bestemt navn

Jeg har følgende 
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = Cells(4, 2).Address Then
  If Not IsEmpty(Target.Value) Then
    ThisWorkbook.SaveAs ThisWorkbook.Path & "\" & Target.Text
  End If
  End If
End Sub
Der er bare det problem at den gemmer hver gang der er en i linie 4 kol. 2
Jeg har lavet en knap så jeg selv vælger hvornår der skal gemmes
så kan den automatiske " gemning" fjernes ?
Avatar billede claes57 Ekspert
19. maj 2018 - 13:46 #1
du kan vel bare slette den rutine helt - det eneste den laver er at gemme når der rettes i feltet.
Avatar billede FinnLauridsen Forsker
19. maj 2018 - 14:16 #2
ok Claes57
idet jeg ikke selv har lavet formlen , ved jeg ikke hvad der er jeg skal slette

ved du om denne formel formel virker i excel 2010 ?
idet jeg laver den i excel 2016  men den skal køre i en excel 2010 og det er som den ikke virker der ?
Avatar billede claes57 Ekspert
19. maj 2018 - 14:47 #3
jeg har kun office365, så kan ikke teste det i 2010
Avatar billede store-morten Ekspert
19. maj 2018 - 17:08 #4
Hej Finn
Vi er enige om det er koden du spørger om?
Og ikke en formel.

Jeg er næsten sikker på koden virker i alle versioner.
Avatar billede store-morten Ekspert
19. maj 2018 - 17:21 #5
Koden bliver startet hvis der ændres i Arket.
Så kikkes der på om det er cells (4, 2).address (B4) der blev ændret.
Så kikkes der om celle er tom.

Altså: er det B4 der blev ændret = nej, gør intet
Er det B4 der blev ændret og er B4 tom: ja, gør intet
Avatar billede FinnLauridsen Forsker
19. maj 2018 - 17:55 #6
Koden:  vil ikke godtage at gemme navnet er som i b4, men vælger et gammelt navn,
skulle jo eller gemme som navnet i B4
Avatar billede store-morten Ekspert
19. maj 2018 - 17:57 #7
Har du lavet koden om til en knap?
Hvor dan ser den ud?
Avatar billede FinnLauridsen Forsker
20. maj 2018 - 10:10 #8
Hej Store-Morten
Jeg har lavet en makro og en knap , men ligeså snart B4 ændre sig gemmer den filen
det var jo meningen at den først skulle gemmes når knappen trykkes

Det med at den gemte sig som en gammel fil er løst, fandt ud af der må ikke være mellemrum i fil navnet
Avatar billede store-morten Ekspert
20. maj 2018 - 10:26 #9
Det er ikke nemt at hjælpe, når man har den kode du arbejder med ;-)
Avatar billede FinnLauridsen Forsker
20. maj 2018 - 11:01 #10
Ok prøver igen, jeg har følgende kode:

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = Cells(4, 2).Address Then
  If Not IsEmpty(Target.Value) Then
    ThisWorkbook.SaveAs ThisWorkbook.Path & "\" & Target.Text
  End If
  End If
End Sub

Den gemmer sig selv, når der kommer ny tekst i B4
Jeg ville gerne at den ikke gemmer sig selv, men via en makro og knap
Macro ser således ud:
Sub gem()
'
' gem Makro
'

'
    ActiveWorkbook.SaveAs Filename:= _
        "I:\Kunder\MHI Vestas\2018\DC Cables 2018\Operations\Economy\Test kabelmaskine\ffdfdgffdgdgfdgfdgfgdgd.xlsm" _
        , FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub

men de to koder konflikter, når jeg kører makroen så vælger den et gammelt navn og ikke det nye der er i B4
ligeledes har jeg lavet en makro der skal slette de gamle data i arket
Sub ny_checkskema()
'
' ny_checkskema Makro
'

'
    Range("B4").Select
    Selection.ClearContents
    Range("B5").Select
    Selection.ClearContents
    Range("B6").Select
    Selection.ClearContents
    Range("C4").Select
    Selection.ClearContents
    Range("D4").Select
    Selection.ClearContents
    Range("E4").Select
    Selection.ClearContents
    Range("F4").Select
    Selection.ClearContents
    Range("G4").Select
    Selection.ClearContents
End Sub

den virker:)
Avatar billede store-morten Ekspert
20. maj 2018 - 11:14 #11
Så prøv at slette den første kode der gemmer ved ændring, og nøjes med:
Sub gem()
' gem Makro
    ActiveWorkbook.SaveAs Filename:= _
        "I:\Kunder\MHI Vestas\2018\DC Cables 2018\Operations\Economy\Test kabelmaskine\ffdfdgffdgdgfdgfdgfgdgd.xlsm" _
        , FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub

Sub ny_checkskema()
' ny_checkskema Makro

    Range("B4:B6, C4:G4").ClearContents

End Sub

' ny_checkskema Makro: Har kortet lidt ned, men skulle gøre det samme
Avatar billede FinnLauridsen Forsker
20. maj 2018 - 11:31 #12
Den gemmer sig under navnet:  ffdfdgffdgdgfdgfdgfgdgd hver gang
den skulle jo gerne tage navnet fra B4
Avatar billede store-morten Ekspert
20. maj 2018 - 11:48 #13
Vil du gemme med samme pladsering som kilde filen?
Avatar billede store-morten Ekspert
20. maj 2018 - 11:50 #14
Prøv:
Sub gem()
' gem Makro

    ThisWorkbook.SaveAs ThisWorkbook.Path & "\" & Range("B4").Text
   
End Sub

Sub ny_checkskema()
' ny_checkskema Makro

    Range("B4:B6, C4:G4").ClearContents

End Sub
Avatar billede FinnLauridsen Forsker
20. maj 2018 - 11:56 #15
det var meningen at filen skulle gemmes under :
"I:\Kunder\MHI Vestas\2018\DC Cables 2018\Operations\Economy\Test kabelmaskine\ffdfdgffdgdgfdgfdgfgdgd.xlsm" Hvor ffdfdgffdgdgfdgfdgfgdgd  skulle erstattes med navnet i B4, når den skal gemmes
Avatar billede store-morten Ekspert
20. maj 2018 - 12:18 #16
Prøv:
Sub gem()
' gem Makro

    ActiveWorkbook.SaveAs Filename:= _
        "I:\Kunder\MHI Vestas\2018\DC Cables 2018\Operations\Economy\Test kabelmaskine\" & Range("B4") & ".xlsm"
End Sub
Avatar billede FinnLauridsen Forsker
20. maj 2018 - 12:25 #17
Der var den, perfekt
men du ved mere vil have mere
kan makroen udvides til at kikke i B4,B5,B6 der vil kun optræde tekst i en af dem samtidigt
Avatar billede store-morten Ekspert
20. maj 2018 - 12:32 #18
Hvis filnavnet allerede findes og du vælger "Nej" eller "Annuller" får du en fejl.
Så vi tilføjer lig en linje:(div)Sub gem()
' gem Makro
On Error Resume Next
    ActiveWorkbook.SaveAs Filename:= _
        "I:\Kunder\MHI Vestas\2018\DC Cables 2018\Operations\Economy\Test kabelmaskine\" & Range("B4") & ".xlsm"
End Sub[/div]
Avatar billede store-morten Ekspert
20. maj 2018 - 12:33 #19
Sub gem()
' gem Makro
On Error Resume Next
ActiveWorkbook.SaveAs Filename:= _
"I:\Kunder\MHI Vestas\2018\DC Cables 2018\Operations\Economy\Test kabelmaskine\" & Range("B4") & ".xlsm"
End Sub
Avatar billede store-morten Ekspert
20. maj 2018 - 12:36 #20
Hvornår og hvordan kikke på B4,B5,B6?
Avatar billede store-morten Ekspert
20. maj 2018 - 12:47 #21
Sub test_B4_B5_B5()
If Range("B4") <> "" Then MsgBox "I celler B4 står der: " & Range("B4")
If Range("B5") <> "" Then MsgBox "I celler B5 står der: " & Range("B5")
If Range("B6") <> "" Then MsgBox "I celler B6 står der: " & Range("B6")
End Sub
Avatar billede FinnLauridsen Forsker
20. maj 2018 - 13:07 #22
i koden
ActiveWorkbook.SaveAs Filename:= _
"I:\Kunder\MHI Vestas\2018\DC Cables 2018\Operations\Economy\Test kabelmaskine\" & Range("B4") & ".xlsm"  kikker den jo efter navnet i B4
hvis der er tekst i B5 eller B6  men kun en af dem , så skal den indsætte  det i stedet
lidt ala:
"I:\Kunder\MHI Vestas\2018\DC Cables 2018\Operations\Economy\Test kabelmaskine\" & Range("B4:B6") & ".xlsm" men så kommer den med fejl
Avatar billede store-morten Ekspert
20. maj 2018 - 13:13 #23
Ala dette:
Sub gem()
' gem Makro
If Range("B4") <> "" Then FilNavn = Range("B4")
If Range("B5") <> "" Then FilNavn = Range("B5")
If Range("B6") <> "" Then FilNavn = Range("B6")

On Error Resume Next
    ActiveWorkbook.SaveAs Filename:= _
        "C:\Users\mjo\Desktop\Leg\" & FilNavn & ".xlsm"
End Sub
Avatar billede store-morten Ekspert
20. maj 2018 - 13:16 #24
Med rettet sti.
Sub gem()
' gem Makro
If Range("B4") <> "" Then FilNavn = Range("B4")
If Range("B5") <> "" Then FilNavn = Range("B5")
If Range("B6") <> "" Then FilNavn = Range("B6")

On Error Resume Next
    ActiveWorkbook.SaveAs Filename:= _
        "I:\Kunder\MHI Vestas\2018\DC Cables 2018\Operations\Economy\Test kabelmaskine\" & FilNavn & ".xlsm"
End Sub
Avatar billede FinnLauridsen Forsker
20. maj 2018 - 13:22 #25
Sådan respekt
Det er nu lige som jeg har ønsket takker mange gange
Avatar billede store-morten Ekspert
20. maj 2018 - 13:25 #26
Velbekomme
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

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