Iterar a través de la lista desplegable de VBA
Tengo tres listas de validación desplegables y estoy tratando de escribir un código que recorra en iteración todas las permutaciones de "Métodos de administración" que están disponibles.
Puedo descubrir el primer paso de iterar a través de una lista (por ejemploIterar a través de una lista desplegable / validación de Excel y otros) pero no puedo resolver cómo pasar por tres de ellos.
Idealmente, me gustaría que esto se escriba de una manera que funcione incluso si agrega más opciones.
Para lograr esto, supongo que desea una forma de contar cuántas opciones hay en cada lista y luego iterar desde 0-n.
Cualquier ayuda sería muy apreciada.
Sub LoopThroughList()
Dim Dropdown1, Dropdown2, Dropdown3 As String
Dim Range1, Range2, Range3 As Range
Dim option1, option2, option3 As Range
' *** SET DROPDOWN LOCATIONS HERE ***
' ***********************************
Dropdown1 = "C6"
Dropdown2 = "D6"
Dropdown3 = "E6"
' ***********************************
' ***********************************
Set Range1 = Evaluate(Range(Dropdown1).Validation.Formula1)
Set Range2 = Evaluate(Range(Dropdown2).Validation.Formula1)
Set Range3 = Evaluate(Range(Dropdown3).Validation.Formula1)
For Each option1 In Range1
For Each option2 In Range2
For Each option3 In Range3
Worksheets("Sheet1").Range("C6:E6").Copy
With Sheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Offset(1)
.PasteSpecial Paste:=xlPasteColumnWidths
.PasteSpecial Paste:=xlPasteValues
End With
Next option3
Next option2
Next option1
End Sub
En este momento me sale esto:
Esto está iterando a través del menú desplegable de tipo de cultivo pero devuelve lo mismo para las plagas y los métodos de manejo. El código que usé para crear la lista desplegable es el siguiente:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("C6")) Is Nothing Then
Range("D6:E6").ClearContents
End If
End Sub