Skocz do zawartości


Close Open
Close Open
Zdjęcie
- - - - -

makro w excelu


  • Please log in to reply
5 replies to this topic

#1 pkbrian

pkbrian

    Kandydat

  • Forumowicze
  • PipPip
  • 34 Postów:
  • Płeć:Mężczyzna

Napisany 22 December 2009 - 11:06 AM

Witam
Mam prośbę o pomoc w kodzie.
Makro musi się uruchamiać automatycznie (albo przy otwarciu pliku, albo przy zmianie wartości, albo przy zapisie).
Próbowałem z workbook_open() i Auto_open ale makro działa dopiero po ręcznym włączeniu.
Kod jest następujący:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

MsgBox "Aktywna komórka (zakres): " & Target.Address(6, 6)

End Sub

Sub Zapis()

On Error Resume Next
Filename = Cells(6, 6)
filepath = "d:\baza danych\"
ActiveWorkbook.SaveAs Filename:=filepath & Filename
On Error GoTo 0

End Sub

Proszę o pomoc w analizie kodu i jego modyfikacji. Kod zapisu działa ale nie uruchamia się automatycznie (excel 2000, poziom makr średni, powinno działać - a nie działa)


Zmodyfikowałem nieco ten kod i teraz wygląda tak:
Private Sub Worksheet_Change(ByVal Target As Range)
kolumna = 6
wiersz = 6
If Target.Row = wiersz And Target.Column = kolumna Then

On Error Resume Next
Filename = Cells(6, 6)
filepath = "d:baza danych\"
ActiveWorkbook.SaveAs Filename:=filepath & Filename
On Error GoTo 0

MsgBox "Nadano numer narzędzia" 'do usuniecia
End If
End Sub
Umieszczony oczywiście w arkuszu działa, ale przy każdej zmianie wartości w komórce F6 automatycznie zapisuje, a powinien tylko zmianić nazwę.
Pomóżcie proszę

#2 Mały_Rycho

Mały_Rycho

    eremita

  • Forumowicze
  • PipPipPipPipPipPipPip
  • 2014 Postów:
  • Płeć:Mężczyzna
  • Lokalizacja:Sulęcin

Napisany 22 December 2009 - 12:20 PM

Hej,
co jest celem makra?
Mały Rycho

Jeśli mówisz prawdę, nie musisz niczego pamiętać. Mark Twain.

#3 pkbrian

pkbrian

    Kandydat

  • Forumowicze
  • PipPip
  • 34 Postów:
  • Płeć:Mężczyzna

Napisany 22 December 2009 - 13:46 PM

Podstawowy cel makra to zmiana nazwy pliku.
Problem=to jest szablon, który zawsze otwiera się jako duplikat nazwy i dane zapisuje w bazie danych.
Jeżeli przy zmianie nazwy zostanie zapisany plik i dodany nowy rekord w bazie danych to po wypełnieniu wszystkich pól formularza, excel pyta czy zastąpić rekord czy zapisać nowy. Jeżeli jeden z użytkoników kliknie zastąp to narobi bałaganu.
Zatem makro powinno tylko zmieniać nazwę. Albo po zmianie komórki w której wpisywana jest ta sama nazwa albo przy zapisie pliku.

#4 Lukasc.pl

Lukasc.pl

    Adept

  • Forumowicze
  • Pip
  • 12 Postów:
  • Płeć:Kobieta

Napisany 22 December 2009 - 18:18 PM

"ActiveWorkbook.SaveAs Filename:=filepath & Filename"

automatycznie zapisuje? Zdziwiłbym się jakby się nie zapisywało... Potrafisz czytać ze zrozumieniem? Podkreśliłem słowo- klucz.


Podstawowy cel makra to zmiana nazwy pliku.

Jak zmienić nazwę arkusza podczas, gdy jest otwarty? Jest tylko jeden sposób! Zapisz jako.
Nie można zmienić SAMEJ nazwy pliku arkusza- bo gdy arkusz jest otwarty- możliwości zmiany nazwy choćby poprzez explorera nie istnieją(plik po otworzeniu jest automatycznie blokowany)!

A ogólnie to nie wiem o co Ci chodzi. Chcesz zablokować możliwości przypadkowej edycji przez inne osoby- załóż hasło, zapisz w trybie tylko do odczytu...

#5 pkbrian

pkbrian

    Kandydat

  • Forumowicze
  • PipPip
  • 34 Postów:
  • Płeć:Mężczyzna

Napisany 23 December 2009 - 08:05 AM

Dzięki "Lukasc.pl" za naukę czytania. Tak wiem, że otwarty plik jest zablokowany do zmiany nazwy, dlatego jak pisałem wcześniej nie chcę zmienić nazwy lecz uruchomić makro automatycznie, które podczas zapisywania podstawi zmienioną nazwę z danej komórki. A ponieważ jest to szblon, który należy wypełnić i dodatkowo tworzy rekordy w bazie danych to nie mogę go zablokować.

#6 S_L_A_W_E_K_

S_L_A_W_E_K_

    Adept

  • Forumowicze
  • Pip
  • 4 Postów:
  • Płeć:Kobieta

Napisany 05 January 2010 - 22:32 PM

makro ma sie otworzyc przy otwaciu pliku, ja to robie tak:
- zapisz jako  -  wybieram opcje z obsluga makr
- i w opcjach excela ustawiam zeby od razu zezwalalo na makra

Jesli o to chodz, to napisz wtedy punk po punkcie napisze po kolei co i jak




0 Użytkowników czyta ten temat

0 użytkowników, 0 gości, 0 anonimowych użytkowników