• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Grootte van een bestand zoeken

Status
Niet open voor verdere reacties.

SUVERMO

Gebruiker
Lid geworden
22 dec 2019
Berichten
481
beste

is het mogelijk om de bestandsgrootte van de door de macro "Auto_Open" in "Inzenderslijst_maken.xls" https://www.helpmij.nl/forum/showth...te-aanpassen?p=6213109&viewfull=1#post6213109
gevonden bestanden op te slaan in .Cells(TEL2, TEL4) , waarin TEL4=TEL3+1

Code:
Sub Auto_Open()
    Application.ScreenUpdating = False
    If Right(ThisWorkbook.Name, 19) = "_Inzenderslijst.xls" Then
    Call Inzenderslijst_wijzigen
    Exit Sub
End If
       With Sheets("UITLEG")
       ActiveSheet.Unprotect
       .Range("LETTERLIJST").ClearContents
       TEL1 = .Range("AutoOpenNAAM").Value
       TEL2 = .Range("AutoOpenRij").Value
       TEL3 = .Range("AutoOpenKOLOM").Value
          bst = Dir(TEL1)
    While bst <> ""
        .Cells(TEL2, TEL3) = Left(bst, 1)
        TEL2 = TEL2 + 1
        bst = Dir
    Wend
    Range("LETTERLIJST").EntireRow.Hidden = True
    Range("HIDDENNAMEN").EntireRow.Hidden = True
    .Range("LETTER").Select
    .Rows("1:2").Hidden = False
    .Rows(IIf(.Range("BESTANDAANTAL") <> 0 And .Range("BESTANDAANTAL") <> "", 1, 2)).Hidden = True
    End With
    Rows("25").Hidden = True
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    Sheets("INPUT").Visible = False
    Sheets("INZENDERSLIJST").Visible = False
    Sheets("DATA").Visible = False
    Application.ScreenUpdating = True
End Sub
 
bedoeling is om in een formule de tijd te berekenen die nodig is voor de verwerking van de formules die door macro "Inzenderslijst_maken" gekopieerd worden naar het nieuwe Excel "?_Inzenderslijst.xls"

de vraag i.v.m. timer was hier ook voor bedoeld
https://www.helpmij.nl/forum/showthread.php/951168-Timer

een beetje uitleg bij de bijlage
Kolom B: naam van bestand
Kolom C: aantal rijen dat door macro "Inzenderslijst_maken" gekopieerd moet worden
Kolom D: de grootte in kB van het bestand in kolom B
Kolom E: de grootte in kB van het nieuwe Excel "?_Inzenderslijst.xls", dit komt overeen met 1019+kolom c x (ongeveer 9,2, nog verder uit te zoeken met formule)

de formules kan ik zelf wel uitwerken, maar dat van timer en grootte, kan iemand mij daar mee helpen
 

Bijlagen

  • bestandsgrootte.jpg
    bestandsgrootte.jpg
    145,3 KB · Weergaven: 51
ben even aan het proberen geweest
nu worden vanaf rij 100 in kolom 10 en 11 de eerste letter van de bestandsnaam ingevuld.
wat moet er gewijzigd worden om in kolom 11 de bestandsgrootte in kB in te vullen

Code:
Sub Macro4()
'
' Macro4 Macro
'

'
With Sheets("UITLEG")
       ActiveSheet.Unprotect
       .Range("LETTERLIJST").ClearContents
       TEL1 = .Range("AutoOpenNAAM").Value
       TEL2 = 100
       TEL3 = 10
          bst = Dir(TEL1)
    While bst <> ""
        .Cells(TEL2, TEL3) = Left(bst, 1)
        TEL2 = TEL2 + 1
        bst = Dir
    Wend
End With
With Sheets("UITLEG")
       ActiveSheet.Unprotect
       .Range("LETTERLIJST").ClearContents
       TEL1 = .Range("AutoOpenNAAM").Value
       TEL2 = 100
       TEL3 = 11
          bst = Dir(TEL1)
    While bst <> ""
        .Cells(TEL2, TEL3) = Left(bst, 1)
        TEL2 = TEL2 + 1
        bst = Dir
    Wend
End With
End Sub
 
Code:
MsgBox CreateObject("Scripting.FileSystemObject").getfile(ThisWorkbook.FullName).Size & " bytes"

Of in kB:
Code:
MsgBox Format(CreateObject("Scripting.FileSystemObject").getfile(ThisWorkbook.FullName).Size / 1024, "0.0") & " kB"
 
Laatst bewerkt:
Geen idee, misschien hier wel.

Code:
bst = Dir(TEL1)
    While bst <> ""
        .Cells(TEL2, TEL3) = Left(bst, 1)
        [COLOR=#ff0000].Cells(TEL2, TEL3).Offset(,1) = [/COLOR]Format(CreateObject("Scripting.FileSystemObject").getfile(bst).Size / 1024, "0.0") & " kB"
        TEL2 = TEL2 + 1
        bst = Dir
    Wend

Of korter:
Code:
.Cells(TEL2, TEL3).Offset(,1) =filelen(bst) & " B"

Of:
Code:
.Cells(TEL2, TEL3).Offset(,1) = format(filelen(bst) / 1024, "0.0 kB")
 
Laatst bewerkt:
dit geeft fout

Fout 53 tijdens uitvoering:
Kan het bestand niet vinden
 
Als het je de eerste letter geeft zal het vast ook de grootte geven.
 
Of je gebruikt de ingebouwde VBA functie FileLen:
Msgbox FileLen("c:\users\gebruiker\documents\test.xlsx")
 
@JKP, zie #6.
 
is gelukt met

Code:
.Cells(TEL2, TEL3).Offset(, 1) = Format(CreateObject("Scripting.FileSystemObject").getfile(TEL4).Size / 1024, "0.0")

maar het zijn cijfers als letter, wat moet er veranderd worden om getallen te krijgen


heeft er iemand iets voor de timer?
 
met formule in excel
Code:
=ALS(LETTER="";0;WAARDE(LINKS(VERT.ZOEKEN(LETTER;LETTERLIJST_kB;2;0);VIND.SPEC(",";VERT.ZOEKEN(LETTER;LETTERLIJST_kB;2;0))-1)))

heeft er iemand iets voor de timer?
 
Cijfers en letters?
Code:
.Cells(TEL2, TEL3).Offset(,1) = format(filelen(TEL4) / 1024, "0.0")

Ik krijg alleen maar getallen, bv. 10883

format( met /1024,"0.0") geeft het aan in kB...10,8 dus.
 
Laatst bewerkt:
bij mij komt er tekst
tekst = links uitgelijnd en met een komma
cijfers = rechts uitgelijnd en met een punt

is het mogelijk om de tijd van opslaan op te vragen in HH:MM:SS.ss
 

Bijlagen

  • cijfers.jpg
    cijfers.jpg
    57,5 KB · Weergaven: 49
Laatst bewerkt:
Links uitgelijnd in een plaatje zegt mij niets over het resultaat van procedure.

Als de opmaak van een cel vooraf al op tekst heeft gestaan, krijg je dat alleen weer goed door een vermenigvuldiging en niet met eigenschappen.
 
is het mogelijk om de tijd van opslaan op te vragen in HH:MM:SS.ss
 
Het ene is nog niet opgelost of je hebt alweer een vervolgvraag.

Ook VBA heeft de Help met de F1 knop.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan