א' שואל:
שלום רב,
אני בונה קובץ שעות עבודה דינאמי.
אני מעוניין שבאמצעות קוד VBA הוא יריץ לולאה בה בתאים B עד I הוא יעדכן שזה אימות נתונים מתוך בחירה מרשימה (אורך השורות ככמות הימים בחודש הספיציפי של הגיליון).
אשמח לעזרה בבקשה.
תשובה:
מצ"ב הצעה לפיתרון -
1. בגיליון Sheet1 נגדיר את רשימת הערכים לבחירה בתאים N1 עד N11.
2. בעורך VBA נוסיף מודול חדש Module1 ונגדיר בו את הקוד הבא -
הקוד מוחק ולידציה קיימת בטווח B4-I30 בגיליון Sheet1 ומוסיף ולידציה של בחירת ערכים מרשימה מטווח N6-N11.
Public Sub Update_Validation()
Application.ScreenUpdating = False
nuOfDays = 30
With Sheets("Sheet1")
With .Range(.Cells(4, 2), Cells(nuOfDays, 9)).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=$N$6:$N$11"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End With
Application.ScreenUpdating = True
End Sub
3. נפעיל את הקוד והתוצאה היא שבגיליון Sheet1 בתאים B4 עד I30 נוספה ולידציה של בחירת ערכים מרשימת הערכים שהגדרנו בעמודה N -
בברכה,