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] (...dla mnie TRUDNE...) makro sprawdzjace nazwy arkuszy w wielu plikach, kopiujace zakres do wielu plkow, zmieniajace string'a w zakresie w wielu plikach


otwartyotwarty rozpoczął: nooldor postów: 4



napisał: nooldor
postów: 12


umieszczony:
19 sierpnia 2007
22:48

  
Witam!

Co do mojego 1 postu to właściwie można uprościć sprawę:

1.Jak wygląda makro wklejające do wszystkich plików(i do wszystkich arkuszy w tych plikach) z wybranego folderu dany zakres komórek???

2.Jak wyglada makro zmieniające w danym zakresie we wszytskich plikach w folderze (we wszystkich arkuszach) wyraz xxx na yyy ????

Z niecierpliwością czekam na odpowiedzi na te oraz wcześniejsze pytania.......
Z góry dziękuję za odpowiedzi!
Pozdrawiam!!
napisał: nooldor
postów: 12


umieszczony:
16 sierpnia 2007
21:12

  
po drodze zrodził sie jeszcze jeden problem (zupełnie Z INNEJ BECZKI):
w kolumnie B mam wypisane pewne nazwy
w kolumnie C, D, E i F jest formuła =WYSZUKAJ.PIONOWO(wartość z kolumny B;$jakis tam zakres$reszta)
czyli wyszukuje mi wartosc z B w zakresie i zwraca odpowiedniw wartosci w C D E i F.... tylko że:
zakres to tylko 1 wiersz na 4 kolumny , wartość komórki w pierwszej kolumnie zmienia się co pewien czas tak że jesli wartość w pierwszej kolumni się zmieni to zmieni się także wynik formuły a ja chciałbym tego uniknąć tzn. jezeli juz "wyszuka mi pionowo" to zeby zachowywało (kopiowało wartości) obok do komórki G
czyli np.

PM #N/D! #N/D!
RD 37,72 -19,15% tak nie
PR #N/D! #N/D!
PC #N/D! #N/D!
----> w zakresie w 1 kolumnie było RD, ale jesli zmieni się wartosc w zakresie w 1 kolumnie np na PR mamy:

PM #N/D! #N/D!
RD #N/D! #N/D!
PR 2,3 3% nie nie
PC #N/D! #N/D!
a ja chciałbym zachować poprzednie wartości obok, pomóżcie prosze z przekształcenie tego
Sub Makro1()
    Range("C1:G1").Select
    Selection.Copy
    Range("G1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

End Sub


zeby :
1.działało automatycznie jak tylko #N/D! zmieni się na jakąś wartość liczbową( zeby nie musiec za kazdym razem uruchamiac makra)
2. dzialało dla wczesniej wymienionych kolumn od wiersza 1 do 900
czyli jakos tak:
jezeli wartosc w kom C1 <>#N/D! to kopiuj( kopiuj wartości) C1 D1 E1 F1 do G1 H1 I1 J1
i tak od C1 do C900

Z góry dzieki za pomoc !!!!!
napisał: Trebor
postów: 1209


umieszczony:
16 sierpnia 2007
19:50

  
Zostałem wywołany do tablicy więc zacznę dukać (ale liczę na podpowiedź). Mam sporo wątpliwości z działaniem z obszarem roboczym. Jeśli się nie mylę to obszar roboczy zapisuje ostatnie ustawienie skoroszytu. Otwarcie obszaru roboczego to właściwie otwarcie skoroszytu źródłowego z ustawieniami zapisanymi w obszarze roboczym. Trochę się pokręciłem za własnym ogonem toteż czas na wnioski. Wszak czy nie pewniej i lepiej otworzyć źródło i na nim działać niż jakiś za przeproszeniem substytut?

Poprawcie mnie, jeśli się mylę.

Pozdrawiam
napisał: nooldor
postów: 12


umieszczony:
10 sierpnia 2007
15:15

  
Witam
W przeszłości na tym forum rozwiazano moje problemy z makrami więc i tym razem ufam ze zanjda sie tu pomocnni eksperci :)

Makro ma zrobic cos takiego (opis jak ja widzialbym takie makro) :
1. w każdym pliku (ale po kolei w kazdym pliku) .xlw (*) na scieżce c:\costam\ (*) sprawdza czy istnieje arkusz: ConsQRT_reports (*),
jesli TAK to
-kopiuje zakres: wiersze od 268 do 342 (*) z otwartego pliku do wszytskich plikow na scieżce c:\costam\ (*) i rozszerzeniu .xlw (*) do arkusza Cons_QRT_reports(*)
jeśli NIE to:
w każdym pliku .xlw (*) na scieżce c:\costam\ (*) sprawdza czy istnieje arkusz: QRT_reports (*)
jesli TAK
to kopiuje omawiany zakres do tego arkusz (of course do wszyskich plików w tym katalogu c:\costam\ (*) )
jesli NIE ( nie istnieje QRT_reports (*) ani ConsQRT_reports (*)) to makro nic nie robi(znaczy sie idzie dalej do następnego pliku w katalogu...) czyli sie obija :)

2.we wszystkich tych plikach(ale po kolei w kazdym pliku) do ktorych wlejony byl zakres sprawdza czy istnieje arkusz ConsYR_reports (*)
jesli TAK
to zamienia nazwę (wyszukując ją w wklejonym zakresie) ktyy.xlw (*) na nazwę pliku który aktualnie przetwarza czyli np. plik_prztwarzany.xlw ( czyli musi wiedziec w którym obecnie pliku się "znajduje")
jesli NIE:
to sprawdza czy istnieje arkusz YR_reports(*) ( w tym pliku który przetwarza) jesli TAK to zamienia we wklejonym wczesniej zakresie ConsYR_reports(*) na YR_reports(*) a takze zmienia w tym zakresie ktyy.xlw (*) na nazwę pliku który aktualnie przetwarza , jesli nie to nic nie robi.. (znaczy sie idzie dalej do następnego pliku w katalogu...), jesli NIE (istnieje arkusz YR_reports(*)) to nic nie robi .. znaczys sie przetwarza kolejny plik......
(*)- OZNACZA ze ten "argument" sciezka/ nzawa arkusza/rozszerzenie pliku moze się zmieniec, więc BARDZo prosze o umieszczenie komentarza w kodzie tak zebym mogl sobie to wlaśnie w kodzie manualnie zmienić

MAM nadzieję ze jest to zrozumiałe , dokladm jeszcze OPIS slowno-muzyczny tego problemu:

mam katalog z ok 120 plikami .xlw, (to rozszerzenie moze ulec zmianie w niedlugim czasie)
pliki te mają podobna strukturę lecz nie calkiem jedne zawierają 4 arkusze a inne 2 ( choć te liczby 4 i 2 tez nie sa dokladne niktore ark moga miec wiecej... )
te które mają 4 arkusze: nazwy arkuszy: QRT_reports, YR_reports, ConsQRT_reports, ConsYR_reports)
te które mają 2 arkusze: nazwy arkuszy: QRT_reports, YR_reports)
zrobiłem sobie kilka formuł w jednym z tych plików (miał on wlasnie 4 arkusze), formuły te sa w arkuszu ConsQRT_reports ale odnoszą się do danych z arkusza ConsYR_reports chciałbym skopiowac sobie zakres tych fromuł (całe wiersze) do kazdego z tych 120 plikow ale że w niktorych nie ma arkuszy "Cons" to musze skopiować do ich odpowiedników (QRT_reports, YR_reports bez "Cons"), poza tym jesli kopiuję formułę, które zawiera odwołanie do innego arkusza (nawet w tym samym pliku) to po wklejeniu otrzymuje ściezkę w postaci np. =jakas tam formula;[plik-z-ktorego-wklejam.xlw]ConsYR_reports!$C$1:$BX$236;117;0)
czyli musze pozamieniać NAJPIERW ConsYR_reports (jesli w pliku do którego wklejam taki arkusz nie istnieje) na YR_reports a pozniej plik-z-ktorego-wklejam.xlw na plik-do-ktorego-wklejam.xlw ......
BARDZO PROSZĘ o POMOC i z góry DZIĘX !!!! szczególnie dla TREBORA ... (ROBERTA) - on pewnie rozwiaze ten problem bez trudu :)

POZDRO !


<-wstecz  1  dalej->
wszystkich stron: 1


Sortuj posty: z