vbamania.pl
login:
hasło:
 
  *Rejestracja *Zapomniane hasło
 Dziś jest piątek, 17 maja 2024 roku.
Ustaw jako stronę startową Ulubione Napisz
PowrótPowrót do serwisu  RegulaminRegulamin rssRSS

  tytuł wątku:
Wątki dyskusji

[EXCEL] Jak za pomocą makra usunąć linie (shapes)


otwartyotwarty rozpoczął: servant postów: 7



napisał: servant
postów: 8


umieszczony:
29 stycznia 2011
09:04

  
Cytat:
Zdaje się, że nie do końca rozumiem problem. Myślę, że masz wiele skoroszytów z wcześniejszą wersją makra


Te 350 makr to w jednym skoroszycie
Linie rysują się na odpowiedniej wysokości w zależności od wartości liczbowej w konkretnej komórce.
Makra są przerobione (w kilkanaście min) i działają. Ta sprawa jest zamknięta. Za to utknąłem na innym problemie. Ale o tym w wątku "Aktywny zakres komórek"
napisał: Trebor
postów: 1209


umieszczony:
13 stycznia 2011
09:26

  
Zdaje się, że nie do końca rozumiem problem. Myślę, że masz wiele skoroszytów z wcześniejszą wersją makra. Jeśli to o to chodzi to nowe makro można uruchamiać przy aktywnym dowolnym arkuszu i działać według nowego schematu.
Jeśli chodzi o zamianę nazw już wygenerowanych linii na nowe, musisz podać mi jakiś schemat działania (punkt zaczepienia) jakie nazwy należy zamienić na inne nazwy. Jednak obawiam się, że to może być niemożliwe.
Sprecyzuj proszę swoje oczekiwania.

Hej
napisał: servant
postów: 8


umieszczony:
12 stycznia 2011
20:48

  
Dzięki.
Wspólnymi siłami udało się.
Moje makro po przerobieniu wygląda tak
Cytat:
Sub lrplus_0_4()
With ActiveSheet.Shapes.AddLine(31.5, 157.25, 683.25, 157.25)
.Name = "Linia_GGR"
.Line.Visible = msoTrue
.Line.Weight = 1.25
.Line.Style = msoLineSingle
.Line.ForeColor.SchemeColor = 10
End With
End Sub

Linia sie rysuje, a Twoje kasujące makro działa.
Jest super. Teraz tylko przerobić tych 300 makr, które już mam napisane...
napisał: Trebor
postów: 1209


umieszczony:
10 stycznia 2011
21:44

  
Dodaj swoją nazwę tak jak jest w moim makrze.
napisał: servant
postów: 8


umieszczony:
10 stycznia 2011
21:20

  
Dzięki za odzew.
Przepraszam, że nie odpisałem od razu, ale byłem zajęty zupełnie innymi zadaniami (cóż, priorytety...)
Ale do rzeczy. Mam już napisane makra i wyglądaja one przykładowo tak
Cytat:
Sub lrplus_0_4()
'
' Rysowanie linii czerwonej
ActiveSheet.Shapes.AddLine(31.5, 157.25, 683.25, 157.25).Select
Selection.ShapeRange.Line.Weight = 1.25
Selection.ShapeRange.Line.Visible = msoTrue
Selection.ShapeRange.Line.Style = msoLineSingle
Selection.ShapeRange.Line.ForeColor.SchemeColor = 10
Selection.ShapeRange.Line.Visible = msoTrue
End Sub


Jak w takim makro nadać nazwę lini Np "Linia"?
Powyższe makro wykonując się nadaje linii nazwę "Line xxx" gdzie xxx jest numerem kolejnym wygenerowanej w tym arkuszu linii. Okazuje się, że usunięcie linii nie "cofa licznika". Po skasowaniu linii i utworzeniu kolejnej ciągle zwiększa się numer linii. Dlatego też w zasadzie niemożliwe jest usuwanie tych linii makrem, gdyż za każdym razem konkretnej linii nadawana jest automatycznie unikalna nazwa.
W moim konkretnym przypadku w jednym arkuszu będzie rysowanych pięć linii za pomocą pięciu różnych grup makr. W razie potrzeby wszystkie muszą być skasowane.
napisał: Trebor
postów: 1209


umieszczony:
22 grudnia 2010
16:55

  
Dodawanie linii
Sub dodaj()
Dim i As Integer
For i = 1 To 10
With ActiveSheet.Shapes.AddShape(msoLineSingle, 10, 20 * i, 200, 3)
    .Name = "Linia" & i
    .Line.ForeColor.RGB = vbGreen
    .Fill.ForeColor.RGB = vbRed
End With
Next i
End Sub


Usuwanie linii
Sub usun()
Dim linia As Shape
'usuwanie pojedynczo z nazwą Linia
For Each linia In ActiveSheet.Shapes
If InStr(1, linia.Name, "Linia") Then linia.Delete
Next linia
'usuwanie hurtem wszystkiego
'ActiveSheet.DrawingObjects.Delete
End Sub



Excel pozwala nadawać te same nazwy różnym obiektom
napisał: servant
postów: 8


umieszczony:
22 grudnia 2010
00:17

  
Mam arkusz w którym makra rysują linie (shapes) w zależności od wartości danych. Nie wiem czy to w tym wypadku istotne, ale linie te rysowane są na siatce złożonej z innych linii zgrupowanych w obiekt. Po pewnym czasie zachodzi potrzeba kasowania starych danych i wpisania nowych. I tu pojawia się problem: stare linie oczywiście pozostają. Czy da się za pomocą makra dowolne pojedyncze linie usunąć?


<-wstecz  1  dalej->
wszystkich stron: 1


Sortuj posty: z