Wpis z mikrobloga

Excelowe świry, jak najprościej sprawdzić, czy komórki w danym zakresie zaczynają się od konkretnych znaków, i jeśli tak, to wywalić message box'a?

Próbuję takiego prostego kodu, ale nie działa:

Sub startswith()

If Left(Range("B12:B202").Value, 4) = "1111" Then
MsgBox "Text text", vbInformation,"Title"
End If

#excel #vba
  • 20
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@JanKremovski: A to trzeba przejechać pętlą? Nie wystarczy, że jakoś tylko zadeklaruję zakres?

Ze zrobieniem pętli w pythonie to nie miałbym problemu, ale vba to inna sprawa xDDDD

W sensie, że coś
  • Odpowiedz
via Android
  • 0
@Lubie_Budyn
@Mr_NiceGuy
@JanKremovski

Dzięki wielkie mireczki, sprawdzę to jak już będę z powrotem przy kompie.
Tylko, że trochę nie sprecyzowalem, bo nie chce sprawdzać tego przy uruchomieniu makra, tylko, żeby to działało w tle i msgbox wyskakiwał od razu, jeśli wprowadzona wartość zaczyna się od
  • Odpowiedz
via Android
  • 0
@Mr_NiceGuy
@croppz
Dzięki ziomeczki raz jeszcze ( ͡° ͜ʖ ͡°)
Więcej niż jedna komórka jednocześnie nie będzie zmieniana, bo to idzie przez walidację danych, i ten szeroki zakres to też trochę na wyrost, więc to akurat nie problem.
  • Odpowiedz
@croppz: @Mr_NiceGuy: Kurde, sorry za takię męczenie, ale mam już w tym arkuszy eventy przez worksheetchange, i już wcześniej żebym mógł mieć więcej niż jeden to dodałem Case, i te dwa wcześniejsze działały poprawnie, ale ten już mi nie działa niestety.

Mój kod to:

Private Sub
  • Odpowiedz
@croppz: dzięki, właśnie w tej chwili znalazłem też coś takiego

If Not Intersect(Target, Range("$X$19:$X$42")) Is Nothing Then

użyte już po End Select, to już jakoś to powinienem ogarnąć teraz.
  • Odpowiedz
@sartek możesz to zrobić zwykłą funkcją tablicową i zliczyć ile takich wystąpień jest i np. wyświetlić w danej komórce ;) nie jest do tego potrzebne żadne makro ;)
  • Odpowiedz