Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Kategoria: Kamery IP / Alarmy / Automatyka Bram
Montersi
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Excel - działanie w zaznaczonym obszarze

Certino 15 Wrz 2010 15:32 1416 9
  • #1 15 Wrz 2010 15:32
    Certino
    Poziom 17  

    Witam. Mam następujące makro:

    Code:
    Sub Makro2()
    
    '
    ' Makro2 Makro

    x = 1
    y = 1
    suma = 0

    Do While Cells(x, 1) <> ""
       Do While Cells(x, y) <> ""
     
       
       If Cells(x, y).Interior.ColorIndex = 3 Then
           suma = suma + Cells(x, y)
       End If
       y = y + 1
       Loop
       y = 1
    x = x + 1
    Loop

    Cells(6, 1) = suma
    End Sub


    Makro to wyszukuje komórki z tłem i je sumuje. Zaczyna od 1.1 i leci dalej. Ja jednak potrzebuje by to makro działało w obszarze danych zaznaczonych lub jesli to łatwiejsze zaczynało od konkretnego wiersza i kolumny (przy uruchomieniu makra wyskakiwał monit o podanie numeru wiersza i kolumny). Za wszelkie sugestie i podpowiedzi serdecznie dziękuję.

  • Pomocny post
    #2 15 Wrz 2010 18:33
    adamas_nt
    Moderator Programowanie

    Najprościej zastosować Inputbox.

    Code:
    x = InputBox("Podaj Nr wiersza", "Inputbox1")
    
    y = InputBox("Podaj Nr kolumny", "Inputbox2")

  • Pomocny post
    #3 15 Wrz 2010 20:10
    fascynat
    Poziom 24  

    Zerknij na mój pomysł.

    Code:
    Sub sumuj_ilosc_komorek_w_zaznaczeniu()
    
    '(c) "fascynat"

    suma = 0
    kolor = Val(InputBox("Wprowadź nr koloru", "Definiowanie szukanego koloru tła komórek"))
        For Each c In Selection
            If c.Cells.Interior.ColorIndex = kolor Then suma = suma + 1
        Next
    MsgBox "Ilość znalezionych komórek = " & suma, vbOKOnly, "Wynik szukania komórek ze zdefiniowanym kolorem tła = " & kolor

    End Sub

  • #4 16 Wrz 2010 08:11
    Certino
    Poziom 17  

    fascynat, Twój pomysł jest świetny tylko on zlicza ilość komórek a nie sumę wartości tych komórek.

  • #5 16 Wrz 2010 08:53
    fascynat
    Poziom 24  

    Certino napisał:
    Makro to wyszukuje komórki z tłem i je sumuje

    Trzeba było napisać ;) :
    "Makro ma sumować wartości komórek z określonym kolorem tła".

    Ale to nie powinien być problemem, żeby zmodyfikować podany przeze mnie kod? No dobra ;)

    Code:
    Sub sumowanie_w_zaznaczeniu()
    
    '(c) "fascynat"
    'Sumuje wartości komórek o określonym kolorze tła w zaznaczeniu

    suma = 0
    kolor = Val(InputBox("Wprowadź nr koloru", "Definiowanie szukanego koloru tła komórek"))
        For Each c In Selection
            If c.Cells.Interior.ColorIndex = kolor Then suma = suma + c.Value
        Next
    MsgBox "Ilość znalezionych komórek = " & suma, vbOKOnly, "Wynik szukania komórek ze zdefiniowanym kolorem tła = " & kolor

    End Sub

  • #6 16 Wrz 2010 08:54
    Certino
    Poziom 17  

    Ma być
    suma = suma + Cells(x, y) ??

  • Pomocny post
    #7 16 Wrz 2010 09:00
    fascynat
    Poziom 24  

    Odpowiedź wyżej.

  • #8 16 Wrz 2010 09:12
    Certino
    Poziom 17  

    Bajka :) Poleciał pomocnik :)

  • #9 16 Wrz 2010 09:40
    fascynat
    Poziom 24  

    Drobna poprawka w opisach pojawiających się w oknach dialogowych, dostosowująca ich treść do działania makra.

    Code:
    Sub sumowanie_w_zaznaczeniu()
    
    '(c) "fascynat"
    'Sumuje wartości komórek o określonym kolorze tła w zaznaczeniu

    suma = 0
    kolor = Val(InputBox("Wprowadź nr koloru", "Definiowanie szukanego koloru tła komórek"))
        For Each c In Selection
            If c.Cells.Interior.ColorIndex = kolor Then suma = suma + c.Value
        Next
    MsgBox "Suma = " & suma, vbOKOnly, "Suma wartości w znalezionych komórkach o kolorze tła = " & kolor

    End Sub

  • #10 16 Wrz 2010 10:21
    Certino
    Poziom 17  

    To już sobie poprawiłem, dziękuję jeszcze raz za pomoc. Pomocniki poszły. Pozdrawiam

 
Promocja -20%
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME
tme