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

  tytuł wątku:
Wątki dyskusji

jak wyegzekwowac kod na kilku obszarach jednocześnie?


otwartyotwarty rozpoczął: jamanow postów: 12



napisał: jamanow
postów: 69


umieszczony:
3 maja 2012
20:48

  
W Szwecji powiedziano by "Bingo !!! Jag älskar dig Trebor" Dzieki
napisał: Trebor
postów: 1209


umieszczony:
3 maja 2012
19:47

edytowany:
3 maja 2012
19:48

  
Próbowałeś z błędem xlUnlockedFormulaCells
Range(kom.Address).Errors(xlUnlockedFormulaCells).Ignore = True

napisał: jamanow
postów: 69


umieszczony:
3 maja 2012
19:36

  
kod który podałeś ostatnio niestety nie wygasza trójkącików.

Dla uściśnienia:
komórki zawierają kod:
=OM(LETARAD( $B33;smst;3)>0;LETARAD( $B33;smst;3);"")


Wyświetlany komunikat:
Komorka zawiera formule i nie jest zablokowana w celu ochrony przed niezamierzona zmiana.
napisał: Trebor
postów: 1209


umieszczony:
3 maja 2012
18:46

edytowany:
3 maja 2012
18:47

  
Wypróbuj kod:
Range(kom.Address).Errors(xlInconsistentFormula).Ignore = True


Poniżej lista możliwych błędów:
xlEvaluateToError The cell evaluates to an error value.
xlTextDate The cell contains a text date with 2 digit years.
xlNumberAsText The cell contains a number stored as text.
xlInconsistentFormula The cell contains an inconsistent formula for a region.
xlOmittedCells The cell contains a formula omitting a cell for a region.
xlUnlockedFormulaCells The cell which is unlocked contains a formula.
xlEmptyCellReferences The cell contains a formula referring to empty cells.
napisał: jamanow
postów: 69


umieszczony:
3 maja 2012
17:05

edytowany:
3 maja 2012
17:35

  
Kod, który mi zapodałeś działa doskonale, ale po jego wyegzekwowaniu pojawia się błąd wywołany kontrola błędów w tle (trójkącik w lewym górnym rogu celi). Czy jest możliwość wygaszenia tego bez ingerencji użytkownika?

jedyne co znalazlem to:
Application.ErrorCheckingOptions.BackgroundChecking = False



Jest jakiś sposób który ignoruje błędy tylko na wybranych celach?
napisał: jamanow
postów: 69


umieszczony:
18 kwietnia 2012
20:38

edytowany:
18 kwietnia 2012
20:38

  
Kolejne dzięki.
napisał: Trebor
postów: 1209


umieszczony:
18 kwietnia 2012
19:12

edytowany:
18 kwietnia 2012
19:18

  
Jednak to nie działa właściwie.
Z jakiego powodu to musi być robione za jednym razem?

Jeśli można w pętli to może tak:
Sub formulaCopy()
Dim kom As Range
For Each kom In Sheets("Detalj").Range("C5:G11,C14:G14,J6")
Range(kom.Address) = kom.Formula
Next kom
End Sub

napisał: jamanow
postów: 69


umieszczony:
18 kwietnia 2012
18:13

edytowany:
18 kwietnia 2012
18:15

  
na pewno wszystko jest OK, tylko ze moje umiejętności są zbyt male ażeby to zastosować.
jak ożyć to co proponujesz w konkretnym przykładzie, gdzie to wsadzić?

Sub formulaCopy()
Sheets("Detalj").Range("C30:I38").Copy
    ActiveSheet.Range("C30:I38").PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    ActiveSheet.Range("C30").Select

End Sub

napisał: Trebor
postów: 1209


umieszczony:
18 kwietnia 2012
16:34

edytowany:
18 kwietnia 2012
16:37

  
Np. takim zapisem:
Range("C5:G11,C14:G14,J6").Offset(11, 0) = Range("C5:G11,C14:G14,J6").Formula



W tym przypadku formuły zostaną przepisane bez zmiany zakresów.
napisał: jamanow
postów: 69


umieszczony:
18 kwietnia 2012
10:32

  
Przepraszam jerzeli wyrazilem sie niezbyt wyraznie.
Chodzi mi o skopiowanie Formuly z kilku obszarow jednoczesnie. np:

Range("C5:G11,C14:G14,J6").Select

Zaprezentowany przyklad robi to na jednym obszaze
Range("C30:I38").Copy

napisał: grizz
postów: 9


umieszczony:
17 kwietnia 2012
22:50

edytowany:
17 kwietnia 2012
22:53

  
Chodzi o to, że w różnych range'ach?
napisał: jamanow
postów: 69


umieszczony:
17 kwietnia 2012
22:04

  
Mam kod który kopiuje i wkleja formule, kod dotyczy jednego obszaru.
W jaki sposób zrobić jeżeli chce dokonać tej samej czynności na kilku obszarach jednocześnie?
typ:
("C30:I38,B41:E41,G1")




Sheets("Detalj").Range("C30:I38").Copy
    ActiveSheet.Range("C30:I38").PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    ActiveSheet.Range("C30").Select



<-wstecz  1  dalej->
wszystkich stron: 1


Sortuj posty: z