• Jueves 14 de Noviembre de 2024, 23:17

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - maria_mc

Páginas: [1]
1
VBA / Ayuda Con Codigo
« en: Jueves 13 de Enero de 2005, 02:00 »
Hola a todos!, antes que nada quisiera preguntar si es muy dificil aprender Visual Basic, tengo ganas de aprender algo de esto pero tengo miedo que sea dificil, ustedes serian tan amables de orientarme y si es posible indicarme donde puedo encontrar buenos tuoriales?, que programa necesito para programar en visual basic?

Ahora les pedire una ayuda si es posible, he sacado de una pagina esta instruccion:

Sub TotalTimes()
Dim oSld As Slide
Dim strMessage As String
Dim lngTotalTime As Long
For Each oSld In ActivePresentation.Slides
strMessage = strMessage _
& CStr(oSld.SlideNumber) _
& vbTab _
& CStr(oSld.SlideShowTransition.AdvanceTime) _
& vbCrLf
lngTotalTime = lngTotalTime + oSld.SlideShowTransition.AdvanceTime
Next oSld
' Comment these out if you don't want to see them
MsgBox strMessage
MsgBox ("Total time: " & CStr(lngTotalTime))
' And if you want to write the results to a text file:
Dim FileNum As Integer
Dim FileName As String
' Edit this to suit:
FileName = "C:\Mis Documentos\slidetimings.txt"
FileNum = FreeFile()
Open FileName For Output As FileNum
Print #FileNum, strMessage
Print #FileNum, "Total time: " & CStr(lngTotalTime)
Close #FileNum
' view the file in notepad
Call Shell("Notepad.exe " & FileName, vbNormalFocus)
End Sub

a la ruta de acceso le puse:
FileName = "C:\Mis documentos\slidetimings.txt"

cuando le doy ejecutar - ejecutar me muestra todas las
ventanas con los datos pero al final me muestra una
ventana que dice:

Se ha producido el error 76 en tiempo de ejecucion, no se
ha encontrado la ruta de acceso.

se me ocurrio apretar el boton que dice Depurar y pone en
amarillo esta linea:

Open FileName For Output As FileNum,

le he cambiado la ruta de acceso y le he
puesto "C:\escritorio\, y sigue dando error. si alguien me puede ayudar le quedo muy agradecida, cordialmente, maire

2
VBA / Excel
« en: Jueves 4 de Diciembre de 2003, 19:04 »
Hola amigos, soy nueva en este foro, mi problema es que me han ayudado a realizar una macro en VBA que es para lo siguiente: tengo 300 hojas en un libro de excel desde la 1 a la 300, y la macro desarrollada es para reunir algunos datos de todos los clientes en una sola hoja, o sea, reunir en una hoja, nombre, zona, Compania, Producto.

Pero cada vez que intento ejecutar esta macro me dice que falta sub o function, yo no entiendo porque me da error, me han dicho que esta bien.

Aclaro que tengo excel 2002 y Windows XP.

La macro es esta si alguien le encuentra algo para que no me  funcione le agradezco muchoooo :D A lomejor alguine conoce otra forma menos complicada de consolidar los datos en una sola hoja....

Saludos a todos,

Maria Ines

Private iClienteIndex As Integer
Const sHomeSheet = "Sheet1"

Sub ConsolidandoDatos()
Dim iSheetITem As Integer
Dim iActiveSheet As Integer

iActiveSheet = Worksheets(sHomeSheet).Index
iClienteIndex = 0

For iSheetITem = 1 To ActiveWorkbook.Sheets.Count

    If iActiveSheet <> iSheetITem Then
        iClienteIndex = iClienteIndex + 1
        sNombre = ActiveWorkbook.Sheets.Item(iSheetITem).Range("A1").Value
        sZona = ActiveWorkbook.Sheets.Item(iSheetITem).Range("B1").Value
        sCompania = ActiveWorkbook.Sheets.Item(iSheetITem).Range("C1").Value
        sProducto = ActiveWorkbook.Sheets.Item(iSheetITem).Range("D1").Value
        Call DatosPorCliente(iSheetITem, sNombre, sZona, sCompania, sProducto)
    End If

Next

MsgBox "Datos consolidados!!!"

End Sub

Sub DatosPorCliente(ByVal iActiveSheet As Integer, ByVal sNombre As String,
ByVal sZona As String, ByVal sCompania As String, ByVal sProducto As String)
    ActiveWorkbook.Sheets.Item(sHomeSheet).Range("A5").Offset(iClienteIndex,
0).Value = sNombre
    ActiveWorkbook.Sheets.Item(sHomeSheet).Range("A5").Offset(iClienteIndex,
1).Value = sZona
    ActiveWorkbook.Sheets.Item(sHomeSheet).Range("A5").Offset(iClienteIndex,
2).Value = sCompania
ActiveWorkbook.Sheets.Item(sHomeSheet).Range("A5").Offset(iClienteIndex,
3).Value =    sProducto

End Sub

Páginas: [1]