Mostrando entradas con la etiqueta calc. Mostrar todas las entradas
Mostrando entradas con la etiqueta calc. Mostrar todas las entradas

jueves, 16 de junio de 2022

Plantilla para importar imagenes en LibreOffice con Macro

Para importar imágenes en LibreOffice dentro de las celdas es incomodo, hay que importarlas una a una y luego ajustar el tamaño de las celdas.

En su día hice una macro en el excel de Microsoft, pero en LibreOffice no me reconocía unas funciones, por le que he hecho una nueva macro desde cero. El cual se importan las imágenes, simplemente se deben rellenar los cuadros azules de la derecha del botón. El primer ajuste es el número de imágenes que queremos en una columna y en un fila, dibujará una tabla de estas dimensiones. El segundo ajuste es la resolución que queremos que tengan las imágenes.

Cada vez que se pulsa el botón la macro se encarga de eliminar las imágenes existentes y dibujar la tabla con los ajustes ya mencionados. Todas la imágenes deben estar guardados dentro de una carpeta llamada "img" y el formato con el cual deben estar guardas es "img_xx.png", siendo xx un número entre 01 y 99. 




Código macro;

Rem Attribute VBA_ModuleType=VBAModule
Option VBASupport 1


Sub Imagenes1()


    Dim oDoc As Object
    Dim oDrawPage As Object
    Dim oShape As Object
    Dim iShape As Integer
    Dim iSheet As Integer
    oDoc = ThisComponent
    
   
   'Eliminar imagenes
   'https://ask.libreoffice.org/t/inserir-foto-c-macro-libreoffice/36492/4

        oDrawPage = oDoc.getSheets().getByName("Plantilla").getDrawPage()
         For iShape = oDrawPage.getCount() - 1 To 0 Step -1
            if oDrawPage.getCount()> 1 then 'Con esto evito elimnar el botón que llama a esta macro
                   oShape = oDrawPage.getByIndex(iShape)
                oDrawPage.remove(oShape)
            end if
        next


    Dim oPaginaDibujo As Object
    Dim oImagen As Object
    Dim sRuta As String
    Dim oCelda As Object
    Dim oTam As New com.sun.star.awt.Size
    Dim oX As Object
    Dim OY As object
    
    dim Ancho as string
    dim Largo as string
    dim numCeldas_x as integer
    dim numCeldas_y as integer

    oDoc = ThisComponent
    oPlan = oDoc.CurrentController.ActiveSheet
    Dim oSel As Object
    
     
    oPaginaDibujo = oPlan.getDrawPage()
    oCelda = oPlan.getCellByPosition( 5,0 ) 'leer parámeto ancho
    Ancho = ocelda.string

    oCelda = oPlan.getCellByPosition( 5,1 ) 'leer parámeto largo
    Largo = ocelda.string
    
    oCelda = oPlan.getCellByPosition( 3,0 ) 'leer número de celdas en x
    numCeldas_x=ocelda.string
    
    oCelda = oPlan.getCellByPosition( 3,1 ) 'leer número de celdas en y
    numCeldas_y=ocelda.string
    

    dim contador as integer 'contador el máximo sera = ixj
 'Cada vez ajusto las celdas a la posicón por defecto
    For i = 0 To 103 'Tamaño por defecto
        oY = oPlan.Rows(i).getRows() 'Anchura celdas
           oY.Height = 500
    Next
    
    For j = 0 To 100 'Tamaño por defecto
        ox = oPlan.Columns(j).getColumns() 'Altura celdas
           ox.Width = 1500
    Next
    
    Contador= 0
    dim str as string
    
    For i = 0 To numCeldas_y - 1
        oY = oPlan.Rows(3 + i).getRows() 'Anchura celdas
           oY.Height = Largo *10
        For j = 0 To numCeldas_x - 1
            ox = oPlan.Columns(j).getColumns() 'Altura celdas
               ox.Width = Ancho *10
               contador = contador + 1
               if contador < 10 then
                   str= "0" & contador
               else
                   str= contador
               end if
              
            sRuta = ConvertToURL(ThisWorkbook.Path & "\IMG\IMG_" & str & ".png") '& j & ".png") 'ruta de la iamgen
            oCelda = oPlan.getCellByPosition( j, i +3) 'Posicón de la celda donde se fijará la imagen
            If Dir(sRuta) <> "" Then 'Si le imagen existe, la cargo. En caso contrario no hago nada
           
               'Para crear y manipular imágenes
                 oImagen = oDoc.createInstance( "com.sun.star.drawing.GraphicObjectShape" )
                'Establecemos la ruta de la imagen
                oImagen.GraphicURL = sRuta
       
                'La agregamos a la página de dibujo, por ende, al conjunto de formas
                oPaginaDibujo.add( oImagen )
           
                'Establecemos el tamaño de la imagen, siempre establece un tamaño, si no
                'se insertará con un tamaño mínimo casi invisible.
                'La unidad viene dada en centésimas de milímetro
                oTam.Width = ancho*10
                oTam.Height = largo*10
                oImagen.setSize( oTam )
                oImagen.Anchor = oCelda
            END IF
        Next
    
    next   
    
    

End Sub



Descargar plantilla aquí:

https://drive.google.com/file/d/17M4JJNMrD-Q8SRfB2WyyioiXInKpeYZ2/view?usp=sharing

sábado, 28 de diciembre de 2019

Plantilla conversión de todas las monedas del mundo

Conversión en tiempo real de todas las monedas del mundo en el google calc ( excel )

https://docs.google.com/spreadsheets/d/1J9jMd4nOslEvwEEujjN8dDRMb4Oi6XPsygXh2pVwOtE/edit#gid=1205010498

 En la pagina ajustes se puede ver la conversión de todas las monedas a euros actualizados a día de hoy, es posible cambiar esta conversión a otras monedas en la parte superior (dolares americanos, francos suizos, rublos...)

 En cuanto la pagina  plantilla, sirve para llevar un seguimiento de los gastos de un viaje, el precio se pone en Ud (unidades). Esta Ud se cambiarán a Euros para calcular el gasto total.

Si no selecciona ninguna moneda (columna país /moneda), por defecto una UD se considera un Euro, la tasa de cambio valdrá 1,000
Si se selecciona una moneda la tabla calculará la tasa de cambio (columna Tasa de conversión) de ese día ( columna Fecha) y multiplicara las Ud por la tasa de cambio, el resultado es que en la columna amarilla aparecerán todos los resultados en euros









Moneda TablaEURDia de hoy:2019-12-28










Country NameCodeConversionEvolución PrecioValor Actual
----EUR


Afghanistan AfghaniAFNAFNEUR
0,0114362263
Albania LekALLALLEUR
0,0081948589
Algeria DinarDZDDZDEUR
0,0075002639
Angola KwanzaAOAAOAEUR
0,0018557205
Argentina PesoARSARSEUR
0,01495779
Armenia DramAMDAMDEUR
0,0018662744
Aruba GuilderAWGAWGEUR
0,497512053
Australia DollarAUDAUDEUR
0,624804
Azerbaijan ManatAZNAZNEUR
0,5263991727
Bahamas DollarBSDBSDEUR
0,8949260285
Bahrain DinarBHDBHDEUR
2,373423869
Bangladesh TakaBDTBDTEUR
0,010540945
Barbados DollarBBDBBDEUR
0,4434497522
Belarus RubleBYNBYNEUR
0,4254242125
Belize DollarBZDBZDEUR
0,4442003763
Bermuda DollarBMDBMDEUR
0,8948786
Bhutan NgultrumBTNBTNEUR
0,0125370881
Bolivia BolívianoBOBBOBEUR
0,1296911759
Bosnia and Herzegovina Convertible MarkaBAMBAMEUR
0,5100858133
Botswana PulaBWPBWPEUR
0,084404681
Brazil RealBRLBRLEUR
0,2211415763
Brunei Darussalam DollarBNDBNDEUR
0,6618241133
Bulgaria LevBGNBGNEUR
0,5112131366
Burundi FrancBIFBIFEUR
0,0004747366
Cambodia RielKHRKHREUR
0,0002201423
Canada DollarCADCADEUR
0,6842286
Cape Verde EscudoCVECVEEUR
0,0090273232
Cayman Islands DollarKYDKYDEUR
1,07436619
Chile PesoCLPCLPEUR
0,0011949242
China Yuan RenminbiCNYCNYEUR
0,127902
Colombia PesoCOPCOPEUR
0,0002727755
Communauté Financière Africaine (BCEAO) FrancXOFXOFEUR
0,0015180298
Communauté Financière Africaine (BEAC) CFA Franc BEACXAFXAFEUR
0,0015208685
Comorian FrancKMFKMFEUR
0,002029896
Comptoirs Français du Pacifique (CFP) FrancXPFXPFEUR
0,0083440037
Congo/Kinshasa FrancCDFCDFEUR
0,0005310852
Costa Rica ColonCRCCRCEUR
0,0015758257
Cuba PesoCUPCUPEUR
0,8953779422
Czech Republic KorunaCZKCZKEUR
0,03929012
Denmark KroneDKKDKKEUR
0,1339374912
Djibouti FrancDJFDJFEUR
0,0050292177
Dominican Republic PesoDOPDOPEUR
0,0168178642
East Caribbean DollarXCDXCDEUR
0,3311237849
Egypt PoundEGPEGPEUR
0,0557880017
El Salvador ColonSVCSVCEUR
0,1023299048
Ethiopia BirrETBETBEUR
0,0278952174
Euro Member CountriesEUREUREUR#N/A#N/A
Fiji DollarFJDFJDEUR
0,4143747885
Gambia DalasiGMDGMDEUR
0,0174508307
Georgia LariGELGELEUR
0,3123485428
Ghana CediGHSGHSEUR
0,1569962398
Gibraltar PoundGIPGIPEUR
1,100879653
Guatemala QuetzalGTQGTQEUR
0,1162102773
Guinea FrancGNFGNFEUR
0,0000949977
Guyana DollarGYDGYDEUR
0,004309227
Haiti GourdeHTGHTGEUR
0,009415492
Honduras LempiraHNLHNLEUR
0,0362322742
Hong Kong DollarHKDHKDEUR
0,1149081215
Hungary ForintHUFHUFEUR
0,0030265103
Iceland KronaISKISKEUR
0,0073640884
India RupeeINRINREUR
0,0125284883
Indonesia RupiahIDRIDREUR
0,00006411079
International Monetary Fund (IMF) Special Drawing RightsXDRXDREUR
1,23285277
Iran RialIRRIRREUR
0,0000268463
Iraq DinarIQDIQDEUR
0,0007519988
Israel ShekelILSILSEUR
0,2587595701
Jamaica DollarJMDJMDEUR
0,0067390586
Japan YenJPYJPYEUR
0,008176216
Jordan DinarJODJODEUR
1,261651753
Kazakhstan TengeKZTKZTEUR
0,002348829
Kenya ShillingKESKESEUR
0,0088412305
Korea (South) WonKRWKRWEUR
0,0007709154
Kuwait DinarKWDKWDEUR
2,949029472
Kyrgyzstan SomKGSKGSEUR
0,0128395561
Laos KipLAKLAKEUR
0,0001007179
Lebanon PoundLBPLBPEUR
0,0005926194
Lesotho LotiLSLLSLEUR
0,0637832212
Liberia DollarLRDLRDEUR
0,0047632633
Libya DinarLYDLYDEUR
0,6369242684
Macau PatacaMOPMOPEUR
0,1116444277
Macedonia DenarMKDMKDEUR
0,0162328203
Madagascar AriaryMGAMGAEUR
0,0002475459
Malawi KwachaMWKMWKEUR
0,0012133947
Malaysia RinggitMYRMYREUR
0,2174003
Maldives (Maldive Islands) RufiyaaMVRMVREUR
0,0579361139
Mauritius RupeeMURMUREUR
0,0244824296
Mexico PesoMXNMXNEUR
0,04749509
Moldova LeuMDLMDLEUR
0,0521803711
Morocco DirhamMADMADEUR
0,0932359426
Mozambique MeticalMZNMZNEUR
0,0145701449
Myanmar (Burma) KyatMMKMMKEUR
0,0006023396
Namibia DollarNADNADEUR
0,0637832212
Nepal RupeeNPRNPREUR
0,0078358541
Netherlands Antilles GuilderANGANGEUR
0,531479676
New Zealand DollarNZDNZDEUR
0,5966159563
Nicaragua CordobaNIONIOEUR
0,0262197067
Nigeria NairaNGNNGNEUR
0,0024686305
Norway KroneNOKNOKEUR
0,101476638
Oman RialOMROMREUR
2,32457871
Pakistan RupeePKRPKREUR
0,0057790028
Panama BalboaPABPABEUR
0,8953412522
Papua New Guinea KinaPGKPGKEUR
0,2635872164
Paraguay GuaraniPYGPYGEUR
0,0001380301
Peru SolPENPENEUR
0,2699482909
Philippines PesoPHPPHPEUR
0,0176068706
Poland ZlotyPLNPLNEUR
0,234599
Qatar RiyalQARQAREUR
0,2457782464
Romania LeuRONRONEUR
0,209020553
Russia RubleRUBRUBEUR
0,0144180844
Rwanda FrancRWFRWFEUR
0,0009570893
Saudi Arabia RiyalSARSAREUR
0,2385080378
Serbia DinarRSDRSDEUR
0,0084216165
Seychelles RupeeSCRSCREUR
0,0655993621
Sierra Leone LeoneSLLSLLEUR
0,0000914489
Singapore DollarSGDSGDEUR
0,6618043455
Solomon Islands DollarSBDSBDEUR
0,1078328713
Somalia ShillingSOSSOSEUR
0,0015402384
South Africa RandZARZAREUR
0,0637842217
Sri Lanka RupeeLKRLKREUR
0,0049335176
Sudan PoundSDGSDGEUR
0,0198350826
Suriname DollarSRDSRDEUR
0,1199890811
Swaziland LilangeniSZLSZLEUR
0,0637832212
Sweden KronaSEKSEKEUR
0,0957895145
Switzerland FrancCHFCHFEUR
0,9181779
Taiwan New DollarTWDTWDEUR
0,0297321607
Tajikistan SomoniTJSTJSEUR
0,0923140655
Tanzania ShillingTZSTZSEUR
0,0003894332
Thailand BahtTHBTHBEUR
0,02966746
Tonga Pa'angaTOPTOPEUR
0,3911066921
Trinidad and Tobago DollarTTDTTDEUR
0,1325021686
Tunisia DinarTNDTNDEUR
0,3195427135
Turkey LiraTRYTRYEUR
0,150566546
Turkmenistan ManatTMTTMTEUR
0,2551582565
Uganda ShillingUGXUGXEUR
0,0002443421
Ukraine HryvniaUAHUAHEUR
0,0377807364
United Arab Emirates DirhamAEDAEDEUR
0,2436436029
United Kingdom PoundGBPGBPEUR
1,170665
United States DollarUSDUSDEUR
0,8948786
Uruguay PesoUYUUYUEUR
0,0241840941
Uzbekistan SomUZSUZSEUR
0,0000939998
Viet Nam DongVNDVNDEUR
0,00003872246
Yemen RialYERYEREUR
0,0035745245
Zambia KwachaZMWZMWEUR
0,0644991715
OTROSOTROSOTROSEUR#N/A#N/A