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

  tytuł wątku:
Wątki dyskusji

wstawianie pustych wierszy i wartości w określone komórki


otwartyotwarty rozpoczął: madsim postów: 4



napisał: ml
postów: 23


umieszczony:
2 listopada 2010
20:07

  
U mnie wszytko działa

Cytat:
' wyliczenie sredniej
dblSrednia = Range("a" & lngIndeksWiersza - 1).Value / (lngIloscPustychWierszy + 1)


W tym fragmencie wyliczana jest średnia, czyli bierze liczbę z kolumny A i dzieli przez liczbę=(ilość wstawianych wierszy +1). Jeżeli tu jest błąd to sprawdź następujące elementy:
1. w kolumnie A muszą być liczby
2. ilość wstawianych wierszy musi być przynajmniej 1
3. jeżeli dwie powyższe uwagi nie pomogą to zamień
Value

na
Text



Jeżeli to nie pomoże to załącz plik, bo to jest prosta procedura i nic innego tutaj nie może powodować błędu.
napisał: madsim
postów: 2


umieszczony:
2 listopada 2010
16:38

edytowany:
2 listopada 2010
16:39

  
ML,

procedura nie dziala i nie chce się skompilować, jakis jest bład w kodzie.

' wyliczenie sredniej
dblSrednia = Range("a" & lngIndeksWiersza - 1).Value / (lngIloscPustychWierszy + 1)
napisał: ml
postów: 23


umieszczony:
31 października 2010
13:12

  
Witam,
proponuję coś takiego:

Sub subPusteWierszeSrednia()
' wpisane dane sa w pierwszej kolumnie - A i nie ma w niej pustych komorek
' wpisywana srednia jest do drugiej kolumny - B

  Dim lngIloscPustychWierszy As Long ' ilosc pustych wierszy do wstawienia
  Dim lngIlosctWypelnionychWiersz As Long ' ilosc wypelnionych wiersz w kolumnie A
  Dim lngIndeksWiersza As Long ' indeks wiersza
  Dim dblSrednia As Double ' wyliczona srednia
  
  lngIloscPustychWierszy = CLng(InputBox("Podaj ilość wierszy do wstawienia:", "PUSTE WIERSZE", 2))
  lngIlosctWypelnionychWiersz = Range("A1").End(xlDown).Row
    
  lngIndeksWiersza = 2
  Do
    
    ' wyliczenie sredniej
    dblSrednia = Range("A" & lngIndeksWiersza - 1).Value / (lngIloscPustychWierszy + 1)
    Range("B" & lngIndeksWiersza - 1).Value = dblSrednia
    
    'dodanie pustych wierszy
    Range("A" & lngIndeksWiersza & ":A" & lngIndeksWiersza + lngIloscPustychWierszy - 1).EntireRow.Insert
    
    ' przepisanie sredniej
    Range("B" & lngIndeksWiersza - 1).AutoFill _
        Destination:=Range("B" & lngIndeksWiersza - 1 & ":B" & lngIndeksWiersza + lngIloscPustychWierszy - 1), _
        Type:=xlFillValues
    
    ' kolejny krok
    lngIndeksWiersza = lngIndeksWiersza + lngIloscPustychWierszy + 1
  
  Loop Until Len(Range("A" & lngIndeksWiersza - 1).Value) = 0
  

End Sub



Procedura była testowana na arkuszu, który w kolumnie A w wierszach od 1 do 5 miał wartości z przykładu. Wtedy procedura wpisuje dane do kolumny B. Jeżeli dane wejściowe nie są w kolumnie A, to wtedy trzeba w kodzie zamienić A na właściwą kolumnę (literowo) i analogicznie z kolumną B.
napisał: madsim
postów: 2


umieszczony:
25 października 2010
12:21

  
Witam,

Mam prośbę, potrzebuję makra, które wstawi dowolną ilość pustych wierszy w miejsce każdego (powiedzmy, że dla przykładu 2 nowe) oraz kopiujące wartości poszczególnych komórek do nowych wierszy w raz z liczeniem średniej (jak niżej w przykładzie. Podaję przykładowy plik i poszczególne etapy przetwarzania z efektem końcowym.

plik początkowy:

Lp d1 d2
1 k 23
2 k 435
3 k 6523
4 k 3552
5 k 852

1. (wstawianie pustych wierszy):

Lp d1 d2
1 k 23


2 k 435


3 k 6523


4 k 3552


5 k 852



2. wypełnienie komórek i wstawienie średniej z d2 :

Lp d1 d2 średniad2
1 k 23 7,666666667
1 7,666666667
1 7,666666667
2 k 435 145
2 145
2 145
3 k 6523 2174,333333
3 2174,333333
3 2174,333333
4 k 3552 1184
4 1184
4 1184
5 k 852 284
5 284
5 284

kolumna średnia z d2 to średnia arytmetyczna dla liczby d2 (liczona dla ilości pól z kolumny LP; w przykładzie dla 3, czyli (1+liczba nowo wstawionych wierszy))

Z góry dziękuję za pomoc.


<-wstecz  1  dalej->
wszystkich stron: 1


Sortuj posty: z