Да се научим да работим с Excel - тема [4]

  • 32 160
  • 205
  •   2
Отговори
# 195
  • Агент под прикритие
  • Мнения: 11 589
Трябва да ползваш събитието Worksheet_Change. Когато отвориш Visual Basic-а в Excel, намираш си Project панела вляво и там търсиш въпросния лист, в който ще се прави това. Щракаш два пъти на него, за да ти се появи прозореца за код и там пускаш следното:
Код:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.CountLarge > 1 Then Exit Sub
If Not Intersect(Target, Range("A:A")) Is Nothing Then
    If Target.Value = vbNullString Then
        Target.Offset(, 1).Value = vbNullString
    Else
        Target.Offset(, 1).Value = Now
    End If
End If

End Sub
Този код ще "слухти" за промяна в колона А (А:А) и при всяка такава, ще слага днешна дата в съседната колона. За да стане по-ясно, можеш да смениш формата на клетките в колона B на примерно
Цитат
dd.mm.yyyy hh : mm : ss
Сложих нарочно интервали между часа, минутите и секундите, в действителност е без, форума го отчита като емотикони.
и така ще виждаш дори секундите.
Горния код проверява също така дали си изтрила клетката в колона А и съответно чисти датата вдясно. Ако искаш и триенето на съдържание на клетка да се отчита като промяна, проверката за празна стойност в колона А  се маха:
Код:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.CountLarge > 1 Then Exit Sub
If Not Intersect(Target, Range("A:A")) Is Nothing Then
     Target.Offset(, 1).Value = Now
End If

End Sub
При промяна в коя да е колона, различна от A, кода няма да прави нищо.

Внимавай къде пускаш кода. Ако го пуснеш в друг лист, ще работи там, а не в този, който искаш, а ако е в ThisWorkbook, практически няма да работи.

Последна редакция: ср, 21 фев 2024, 22:16 от Phoenix Wright

# 196
  • София
  • Мнения: 17 851
Жив и здрав да си, Фениксе. Сложих го, работи успешно. Beer

# 197
  • Точно където трябва
  • Мнения: 4 758
Имам таблица със  примерно три колони. В първата има данни, които се повтарят понякога, във второта има стойности. Искам в третата да ми сумира стойностите от втората колона, които стоят срещу еднакви данни от първата. Примерно в първата на три реда стои числото 1234, на 5 реда числото 1235 и т.н. Искам стойностите от втората колона, които стоят на редовете срещу 1234 да ми ги сумира някъде /където посоча/ в третата.

# 198
  • Мнения: 29 740
С пивот таблица ще е най-лесно, ако ти трябват само стойностите като сума от втората и числото, което е повтаря от първата.

# 199
  • Мнения: 1 111
SUMIF/SUMIFS

Имам таблица със  примерно три колони. В първата има данни, които се повтарят понякога, във второта има стойности. Искам в третата да ми сумира стойностите от втората колона, които стоят срещу еднакви данни от първата. Примерно в първата на три реда стои числото 1234, на 5 реда числото 1235 и т.н. Искам стойностите от втората колона, които стоят на редовете срещу 1234 да ми ги сумира някъде /където посоча/ в третата.

# 200
  • Мнения: 29 740
Със SUMIF/SUMIFS, трябва да зададе някакво "ако". Доколкото разбирам се иска да се сумират тези с еднакви стойности в първа колона, като се взема числото от втората, а не конкретно тези само с 1234 примерно.
Както казах, най-лесно и елегантно ще е с пивотка.

# 201
  • Мнения: 1 111
Аз разбирам, че иска да сумира втората колона по критерий от първата. Зависи каква е целта и как трябва да се вижда.

# 202
  • Манчестър
  • Мнения: 2 489
Здравейте,

Имам workbook, която е protected. И аз и колегата знаем паролата, но паролата по някаква причина не работи.

Опитах всички ''хакове'' , но опирам до някакъв код, който не мога да видя.

Някой с идея как да махна паролата?

# 203
  • Мнения: 29 740
Сейваш копие на файла.

ПС: Паролата сигурно не е тази, която въвеждаш.

# 204
  • Манчестър
  • Мнения: 2 489
Сейваш копие на файла.

ПС: Паролата сигурно не е тази, която въвеждаш.

Да речем, че 100% съм сигурна....аз и колегата заедно работихме по файла.
С VBA project мога да видя, че е 8 знака, ама до там....а паролата е с 8 знака.

# 205
  • Мнения: 29 740
Паролата за влизане във файла ли е или за коригиране?
Ако е за влизане, не знам дали ще стане изобщо, дори и да сейвнеш копие. Иначе при парола за редактиране, можеш да заобиколиш със сейф на копие на файла. Но при положение, че дори не можеш да влезеш, едва ли....

Другото, което се сещам е да сте написали паролата на бг, т.е. вместо с англ. букви, клавиатурата да ви е била на бг.

Общи условия

Активация на акаунт