vbamania.pl
login:
hasło:
 
  *Rejestracja *Zapomniane hasło
 Dziś jest niedziela, 27 kwietnia 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 sumy czesciowe


otwartyotwarty rozpoczął: satsohn postów: 4



napisał: satsohn
postów: 4


umieszczony:
30 maja 2007
19:39

  
czy dałoby rade rozdzielić wstawianie pustych wierszy i sumy czesciowe jako dwa niezalezne makra z możliwością definiowania od któego wiersza ma sie zacząć wstawianie pustych wierszy (pierwsze makro) lub suma częściowa (drugie makro)

czy dalo by sie te makro tak przerobic ,żeby wstawial puste wiersze niezaleznie od sąsiednich kolumn, tj np:

Ania 123 werwer 234 ghghk
Ania 123 werwer 34 456745
bogdan trytr 34 gfhf
bogdan hgj 12 ghfgh
bogdan 7878 45 ghfh
tomek yuytu 656 ghgf

wstawianie pustych wierszy odbywalo by sie tylko na podstawie pierwszej kolumny , pozostale byłyby bez zmian. Pozostałych kolumn moze byc nieskończenie wiele i moga znajdowac sie w nich dowolne ciagi znaków tj, liczby , litery itp itd

za pomoc z góry dziękuję
napisał: satsohn
postów: 4


umieszczony:
29 maja 2007
19:05

  
dziekuje, już testuję
napisał: Rycho
postów: 291


umieszczony:
29 maja 2007
00:52

  
Hej.
Przetestuj:
Sub test()
  Const w0 = 2  'wiersz początkowy danych

  Dim suma As Double, ogolem As Double
  Dim oldInd As String
  Dim w As Long
  Dim T(), wT As Long         'tablica na sumy
  Dim bDalej As Boolean

  wT = -1
  ogolem = 0
  oldInd = Cells(w0, "A")
  suma = Cells(w0, "B")

  'powtarzaj aż napotkasz pustą komórkę w kolumnie A
  w = w0 + 1
  bDalej = True
  Do
    If Cells(w, "A") = oldInd Then
      suma = suma + Cells(w, "B")
    Else
      'zapamiętanie obliczeń
      ogolem = ogolem + suma
      wT = wT + 1
      ReDim Preserve T(1, wT)
      T(0, wT) = oldInd
      T(1, wT) = suma
      'wstawienie wiersza
      Cells(w, "A").EntireRow.Insert xlDown
      w = w + 1
      oldInd = Cells(w, "A")
      If oldInd = "" Then bDalej = False 'flaga wyjścia z pętli
      suma = Cells(w, "B")
    End If
    w = w + 1
  Loop While bDalej

  'wstawienie ogółem do tablicy
  wT = wT + 1
  ReDim Preserve T(1, wT)
  T(0, wT) = "suma"
  T(1, wT) = ogolem

  'zapisanie sum w arkuszu
  Cells(w, "A").Resize(wT + 1, 2) = WorksheetFunction.Transpose(T)

End Sub



pzdr
Rycho
napisał: satsohn
postów: 4


umieszczony:
28 maja 2007
17:16

  
poszukuje makra lub kodu vba dla excela, które by wstawialo puste wiersze pod grupą powtarzających się wyrazów(cyfry z boku nie maja znaczenia - chodzi glownie o kolumne z nazwami)
np.:
Ania 1
Ania 2 2
Ania 2 3
Tomek 4
Tomek 13
Tomek 1
Magda 3
Magda 5
MAgda1234 7
MAgda1234 1

wynikiem byloby:
Ania 1

Ania 2 2
Ania 2 3

Tomek 4
Tomek 13
Tomek 1

Magda 3
Magda 5

MAgda1234 7
MAgda1234 1

a także makra na sumy częściowe , czyli wynikiem byloby tutaj dla zobrazowania:
Ania 1
Ania 2 5
Tomek 18
Magda 8
MAgda1234 8
suma 40

z gory dziekuje


<-wstecz  1  dalej->
wszystkich stron: 1


Sortuj posty: z