UniversoExcelForo

Respuesta a consultas.
Fecha de creación: 09.Abril.2012

Fundadores: Wibly,Tyno,Servando,Sakkar,Rosendo2,RMaximo,Railar,Mcoronel,Ioyama,Igtelo,Hugotron,Drochar,Dedos,Alberto,Adolfo

No se pueden hacer consultas de Excel o VBA por mensaje privado.
Utiliza el botón buscar del foro y te ahorras tiempo para obtener "ayuda".

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

1 macro con combobox enlazados el 22/02/16, 05:25 am

steward


BUenos días soy nuevo en este foro y también novel en programación.
Estoy realizando un formulario de búsqueda de datos con varios combobox enlazados. lo que pretendo es que me funcione como si selecciono en el primer combobox : no normalizado, si seleccionno normalizado y cualquiera de las opciones existentes en el combobox 2, el combobox 3 no me aparece ninguna opcion. Espero me puedan ayudar a encontrar mi error y me indiquen como puedo solucionarlo.

Gracias de antemano.

Codigo:
Private Sub Cond_Normalizado_Click(): CargarListBox2: End Sub
Private Sub TipoLinea_Click(): CargarListBox3: End Sub
Private Sub Tension_Click(): CargarListBox4: End Sub
Private Sub N_Circuitos_Click(): CargarListBox5: End Sub
Private Sub N_Cond_Fase_Click(): CargarListBox6: End Sub
Private Sub Seccion_Click()
Longitud.Text = "": Total_Inv.Text = "": Total_Op_Mant.Text = ""
With Seccion
   Inversion€km = .List(.ListIndex, 1)
   Op_Mant_€km = .List(.ListIndex, 2)
End With
End Sub
Private Sub CommandButton1_Click()
If IsNumeric(Inversion€km) Then
   Range("A2") = Cond_Normalizado.Text
   Range("B2") = TipoLinea.Text
   Range("C2") = Tension.Text
   Range("D2") = N_Circuitos.Text
   Range("E2") = N_Cond_Fase.Text
   Range("F2") = Seccion.Text
   Range("G2") = CDbl(Inversion€km)
   Range("H2") = CDbl(Op_Mant_€km)
   Range("E5") = (Longitud)
   Range("F7") = (Total_Inv)
   Range("G7") = (Total_Op_Mant)
   Unload Me
End If
End Sub
Private Sub CommandButton2_Click()
Dim inv As Double
Dim opymant As Double
Dim km As Double
 
inv = Val(Format(Me.Inversion€km.Text, "##"))
opymant = Val(Format(Me.Op_Mant_€km.Text, "##"))
km = Longitud.Text
Total_Inv.Text = inv * km
Total_Op_Mant.Text = opymant * km
Total_Inv.Text = Round(Total_Inv.Text, 2)
Total_Op_Mant.Text = Round(Total_Op_Mant.Text, 2)
Total_Inv.Text = Format(Total_Inv, "Currency")
Total_Op_Mant.Text = Format(Total_Op_Mant, "Currency")
End Sub
Private Sub Label1_Click()
End Sub
Private Sub Label2_Click()
End Sub
Private Sub Inversion€km_Change()
End Sub
Private Sub Op_Mant_€km_Change()
End Sub
Private Sub Longitud_Change()
End Sub
Private Sub Total_Inv_Change()
End Sub
Private Sub Total_Op_Mant_Change()
End Sub
Private Sub UserForm_Initialize()
Longitud.Text = "": Total_Inv.Text = "": Total_Op_Mant.Text = ""
With N_Cond_Fase
   .ColumnCount = 3
   .ColumnWidths = ";0;0"
End With

CargarListBox1
End Sub
Private Sub CargarListBox1()
With Cond_Normalizado
   Inversion€km = "": Op_Mant_€km = "": Longitud.Text = "": Total_Inv.Text = "": Total_Op_Mant.Text = ""
   .Clear: TipoLinea.Clear: Tension.Clear: N_Circuitos.Clear: N_Cond_Fase.Clear: Seccion.Clear
   'P_Unitario
      For x = 2 To P_Unitario.Range("A" & Rows.Count).End(xlUp).Row
      .Text = P_Unitario.Range("A" & x)
      If .ListIndex = -1 Then .AddItem P_Unitario.Range("A" & x)
   Next
   .Text = ""
   'Normalizados
   For x = 2 To Normalizados.Range("A" & Rows.Count).End(xlUp).Row
   .Text = Normalizados.Range("A" & x)
   If .ListIndex = -1 Then .AddItem Normalizados.Range("A" & x)
   Next
   .Text = ""
End With
                              
End Sub
Private Sub CargarListBox2()
With TipoLinea
   Inversion€km = "": Op_Mant_€km = "": Longitud.Text = "": Total_Inv.Text = "": Total_Op_Mant.Text = ""
   .Clear: Tension.Clear: N_Circuitos.Clear: N_Cond_Fase.Clear: Seccion.Clear
'P_Unitario
   For x = 2 To P_Unitario.Range("A" & Rows.Count).End(xlUp).Row
      If P_Unitario.Range("A" & x) = Cond_Normalizado.Text Then
         .Text = P_Unitario.Range("B" & x)
         If .ListIndex = -1 Then .AddItem P_Unitario.Range("B" & x)
        
      End If
   Next
   .Text = ""

'Normalizados
   For x = 2 To Normalizados.Range("A" & Rows.Count).End(xlUp).Row
      If Normalizados.Range("A" & x) = Cond_Normalizado.Text Then
         .Text = Normalizados.Range("B" & x)
         If .ListIndex = -1 Then .AddItem Normalizados.Range("B" & x)
        
      End If
   Next
   .Text = ""
End With
'Si elijo  un valor NORMALIZADO tengo que cambiarlo por su valor NO NORMALIZADO correspondiente
'LA180,LA280,LA455 son AEREAS y seccion 180,280 y 455
'CU400,CU500,CU800,CU1200,AL630,AL800,AL1200 son SUBTERRANEAS y seccion 400,500,800,630,800 y 1200 respectivamente

     If TipoLinea = "LA280" Then P_Unitario.Range("A" & x) = Cond_Normalizado.Text And _
                                 P_Unitario.Range("B2, B97") = TipoLinea.Text
                            
End Sub
Private Sub CargarListBox3()
With Tension
   Inversion€km = "": Op_Mant_€km = "": Longitud.Text = "": Total_Inv.Text = "": Total_Op_Mant.Text = ""
   .Clear:  N_Circuitos.Clear: N_Cond_Fase.Clear: Seccion.Clear
   For x = 2 To P_Unitario.Range("A" & Rows.Count).End(xlUp).Row
      If P_Unitario.Range("A" & x) = Cond_Normalizado.Text And _
         P_Unitario.Range("B" & x) = TipoLinea.Text Then
         .Text = P_Unitario.Range("C" & x)
         If .ListIndex = -1 Then .AddItem P_Unitario.Range("C" & x)
      End If
   Next
   .Text = ""
End With
End Sub
Private Sub CargarListBox4()
With N_Circuitos
   Inversion€km = "": Op_Mant_€km = "": Longitud.Text = "": Total_Inv.Text = "": Total_Op_Mant.Text = ""
   .Clear: N_Cond_Fase.Clear: Seccion.Clear
      For x = 2 To P_Unitario.Range("A" & Rows.Count).End(xlUp).Row
      If P_Unitario.Range("A" & x) = Cond_Normalizado.Text And _
         P_Unitario.Range("B" & x) = TipoLinea.Text And _
         P_Unitario.Range("C" & x) = Tension.Text Then
         .Text = P_Unitario.Range("D" & x)
         If .ListIndex = -1 Then .AddItem P_Unitario.Range("D" & x)
      End If
   Next
   .Text = ""
End With
End Sub
Private Sub CargarListBox5()
With N_Cond_Fase
   Inversion€km = "": Op_Mant_€km = "": Longitud.Text = "": Total_Inv.Text = "": Total_Op_Mant.Text = ""
   .Clear: N_Cond_Fase.Clear: Seccion.Clear
      For x = 2 To P_Unitario.Range("A" & Rows.Count).End(xlUp).Row
      If P_Unitario.Range("A" & x) = Cond_Normalizado.Text And _
         P_Unitario.Range("B" & x) = TipoLinea.Text And _
         P_Unitario.Range("C" & x) = Tension.Text And _
         P_Unitario.Range("D" & x) = N_Circuitos.Text Then
         .Text = P_Unitario.Range("E" & x)
         If .ListIndex = -1 Then .AddItem P_Unitario.Range("E" & x)
      End If
   Next
   .Text = ""
End With
End Sub
Private Sub CargarListBox6()
With Seccion
    Inversion€km = "": Op_Mant_€km = "": Longitud.Text = "": Total_Inv.Text = "": Total_Op_Mant.Text = ""
    .Clear:
    For x = 2 To P_Unitario.Range("A" & Rows.Count).End(xlUp).Row
        If P_Unitario.Range("A" & x) = Cond_Normalizado.Text And _
            P_Unitario.Range("B" & x) = TipoLinea.Text And _
            P_Unitario.Range("C" & x) = Tension.Text And _
            P_Unitario.Range("D" & x) = N_Circuitos.Text And _
            P_Unitario.Range("E" & x) = N_Cond_Fase.Text Then
            .AddItem P_Unitario.Range("F" & x)
         .List(.ListCount - 1, 1) = FormatNumber(P_Unitario.Range("G" & x))
         .List(.ListCount - 1, 2) = FormatNumber(P_Unitario.Range("H" & x))
      End If
   Next
   .Text = ""
End With
   
End Sub



Última edición por steward el 22/02/16, 05:26 am, editado 1 vez (Razón : duda)

2 Re: macro con combobox enlazados el 19/03/16, 11:30 pm

jhon1904


Hola steward

Lea las normas de foro, cada vez que hagas una consulta deberás subir un archivo de ejemplo así alguien del foro de podar ayudar mas rápido


saludos

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.