Corel FORUM Strona Główna Corel FORUM
Forum użytkowników programów firmy Corel. Grafika wektorowa, rastrowa i obróbka zdjęć cyfrowych

FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  GrupyGrupy
RejestracjaRejestracja  ZalogujZaloguj  DownloadDownload

Poprzedni temat «» Następny temat
Przesunięty przez: roland
26 Maj 2011, 07:40
Pomoc z makrem - od danej liczby X do danej liczby Y
Autor Wiadomość
zmysl84 
Bywalec



Dołączył: 16 Lis 2010
Posty: 43
Skąd: Polska
  Wysłany: 5 Maj 2011, 12:03   Pomoc z makrem - od danej liczby X do danej liczby Y

Mam makro, które zamienia mi wszystko na aktywnej stronie w kolejności od 1 do iluś tam (w zależności ile mam pól tekstowych).

Kod:
Sub zamienWszystkoNaAktywnejStronie()

Dim s As Shape, sr As ShapeRange, p As Page
Dim n As Long, oldStr As String

n = 1

For Each p In ActiveDocument.Pages
    Set sr = ActivePage.FindShapes(oldStr, cdrTextShape)
    For Each s In sr
        oldStr = s.Text.Story.Characters.All
        If VBA.InStr(oldStr, "") Then
           
            s.Text.Story.Characters.All = n
            n = n + 1
        End If
    Next s
Next p

End Sub


Chciałbym, aby ktoś mi pomógł z tym makrem, aby zamieniało mi do pewnej wartości.

Np. mam na aktywnej stronie 150 pól tekstowych o wartości "X" i chcę, aby makro zamieniło mi ich wartości od 1 do 100 i się zatrzymało, a te pozostałe pola zostawił w spokoju.

To makro co mam wyżej zamienia mi wszystkie pola lub te, których wartości sam podam.
Lecz, jeżeli mam wszystkie pola takie same to zamieni mi wszystko i lipa, a nie wiem jak zmodyfikować te makro, aby zmieniało mi np. tylko do liczby 100 i koniec.

(sorki, trochę zagmatwane) :P

Pomoże ktoś? Dzięki.
 
 
chezare 



Pomógł: 402 razy
Dołączył: 24 Gru 2010
Posty: 4551
Skąd: Grodzisk Mazowiecki
Wysłany: 5 Maj 2011, 17:44   

Musisz zastosować konstrukcję typu
Kod:
For i = 1 To 10
If i > 5 Then GoTo koniec
Next i
koniec:

albo
Kod:
For i = 1 To 10
If i > 5 Then End
Next i

albo
Kod:
For i = 1 To 10
If i > 5 Then Exit For
Next i


Zatrzymać łatwo, znacznie trudniej sprawić żeby działało :-)
Jak szaman zobaczy co powypisywałem to mnie zabije :-)
 
 
zmysl84 
Bywalec



Dołączył: 16 Lis 2010
Posty: 43
Skąd: Polska
Wysłany: 5 Maj 2011, 22:20   

Dzięki chezare ;-)
Czemu od razu zabije :-P Hehe!
Przecież działa! I to była bardzo pomocna p/odpowiedź.

Oto makro po modyfikacji (u mnie działa):

Kod:
Sub zamienWszystkoNaAktywnejStronieModyfikacja()

Dim s As Shape, sr As ShapeRange, p As Page
Dim n As Long, oldStr As String

For n = 1 To 10
'zmień wartości "n" od ilu do ilu ma zmienić

For Each p In ActiveDocument.Pages
    Set sr = ActivePage.FindShapes(oldStr, cdrTextShape)
    For Each s In sr
        oldStr = s.Text.Story.Characters.All
        If VBA.InStr(oldStr, "x") Then
        'wpisz w cudzysłów znak, jaki ma znaleźć i zamienić np. "x"

            s.Text.Story.Characters.All = n
            If n = 10 Then End
            'zmień wartość "n" na taką, po której chcesz, aby się zatrzymało

             n = n + 1
           
        End If
    Next s
  Next p
Next n
End Sub
 
 
chezare 



Pomógł: 402 razy
Dołączył: 24 Gru 2010
Posty: 4551
Skąd: Grodzisk Mazowiecki
Wysłany: 5 Maj 2011, 22:42   

Zmysl84, powiedz mi, bo nie daje mi to spokoju, do czego Ci to potrzebne? Nie mogę się doszukać sensu działania tej procedury :-) . Przerób go jeszcze odrobinę tak żebyś nie musiał za każdym razem grzebać w kodzie.
 
 
zmysl84 
Bywalec



Dołączył: 16 Lis 2010
Posty: 43
Skąd: Polska
Wysłany: 5 Maj 2011, 23:25   

Do ułatwienia w pracy, przy układaniu. Dotychczas układałem tyle pól tekstowych, ile potrzebowałem i wtedy startowałem z tym makrem. A teraz mam ułatwienie, bo ułożę sobie na całym arkuszu pola i wtedy zapodam od jakiego numeru ma robić i na jakim kończyć, wtedy dalej pozostałe robię podobnie lecz z innymi wartościami.

A nie umiem wstawic w makro tych box'ów, useform itp. :(

Żeby chociaż ktoś zapodał mi prosty przykład to może na jego podstawie bym spróbował. A tak lipa, nie kumam.
Ostatnio zmieniony przez zmysl84 5 Maj 2011, 23:30, w całości zmieniany 1 raz  
 
 
chezare 



Pomógł: 402 razy
Dołączył: 24 Gru 2010
Posty: 4551
Skąd: Grodzisk Mazowiecki
Wysłany: 5 Maj 2011, 23:27   

Pachnie mi tu czymś w rodzaju druku seryjnego, a jeśli mam rację, to to co robisz można zrobić łatwiej szybciej i przyjemniej, ale może tylko tak mi się wydaje?
 
 
zmysl84 
Bywalec



Dołączył: 16 Lis 2010
Posty: 43
Skąd: Polska
Wysłany: 5 Maj 2011, 23:39   

A jak byś rozwiązał to, gdybyś musiał wydrukować numery od 1 do 1000, następnie numery od 200 do 400, itd..., lecz bez tracenia arkuszy, tzn. zapełnić arkusz jak się da.
Np. na ostatnim arkuszu z pierwszej serii (ta od 1 do 1000) wejdzie 150 numerów z drugiej serii (od 200 do 400), itd... ?

A co do grzebania w kodzie to jak na razie tylko mi to pozostaje, gdyż nie kumam jak wstawiać/przypisywać w makro te box'y, useform'y, itp...
Żeby ktoś tak podał mi prosty przykład, to wtedy mógłbym na jego podstawie popróbować, a tak lipa.

/Edit
Lecę spać bo do pracy muszę wstać o 4:35 :-P :-/
 
 
chezare 



Pomógł: 402 razy
Dołączył: 24 Gru 2010
Posty: 4551
Skąd: Grodzisk Mazowiecki
Wysłany: 5 Maj 2011, 23:49   

Zmysl84, musiałbym zobaczyć jakiś kawałek takiego pliku najlepiej opisany co jak i gdzie, bo jakoś wyobraźnia mi ostatnio szwankuje :-) Całkiem poważnie, to mam jakieś takie przeczucia, że to co robisz da się zrobić jakoś prościej, a przecież komputery są dla ludzi leniwych, którzy wolą sobie poleżeć na słońcu niż ślęczeć nad klawiaturą. Co do modyfikacji skryptu, to myślę, że da się obyć bez okien formularzy, wystarczy żeby skrypt zadał dwa pytania. Nie czuję się w tym temacie specjalistą, ale wydaje mi się, że potrafię Ci wytłumaczyć jak skrypt do tego zmusić. Pomyślę nad jakąś instrukcją :-)
Ja też bym poszedł spać, ale jeszcze muszę przygotować do wydrukowania 68 obrazków. Na szczęście nie muszę wstawać w nocy :-)
 
 
zmysl84 
Bywalec



Dołączył: 16 Lis 2010
Posty: 43
Skąd: Polska
Wysłany: 6 Maj 2011, 07:14   

Pisze z kom.

Podaje przykład, jak ja to robię - załącznik.
Chyba zrozumiale :-)

przykładnumeracji.cdr
Pobierz Plik ściągnięto 590 raz(y) 34.6 KB

 
 
chezare 



Pomógł: 402 razy
Dołączył: 24 Gru 2010
Posty: 4551
Skąd: Grodzisk Mazowiecki
Wysłany: 6 Maj 2011, 07:32   

Cześć, tak jak myślałem, robisz kawał dobrej i niepotrzebnej nikomu roboty :-) . Dosyć pobieżnie się temu przyjrzałem ale wydaje mi się, że da się to zrobić prosto, łatwo i przyjemnie. Teraz muszę trochę popracować, ale jak wrócę to się przyjrzę temu dokładnie i wykombinuję jakiś prostszy sposób na robienie tych etykietek.
Miłego dnia.
 
 
zmysl84 
Bywalec



Dołączył: 16 Lis 2010
Posty: 43
Skąd: Polska
Wysłany: 6 Maj 2011, 07:49   

Ok. Spoko. Ja właśnie pracuję :-)
Też miłego.
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Nowe zasady dotyczące cookies. Wykorzystujemy pliki cookies, aby nasz serwis lepiej spełniał Państwa oczekiwania. Można zablokować zapisywanie cookies, zmieniając ustawienia przeglądarki.
         
Strona wygenerowana w 0.1 sekundy. Zapytań do SQL: 15