• 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.

celwaarde aanpassen

Status
Niet open voor verdere reacties.

caffie

Gebruiker
Lid geworden
2 jan 2008
Berichten
281
hoe kan ik cel waarde
18054,9 vervangen voor 18054-900
De comma moet dus een "-"worden
en ik wil de 3 decimalen ook als deze er niet zijn achter de "-" hebben

in VBA

ik voeg sommige data samen om er later een bath file van het maken

Code:
Cells(x + Startrow, "z").Value = "Rename " & """" & Files(x) & """" & " " & """" & Cells(x + Startrow, "N") & " - " & Files(x) & """"


dat ziet er nu zo uit

HTML:
Rename "2023-09-06 - 2155.JPG" "18054,904 - 2023-09-06 - 2155.JPG"
"Rename "" 2023-09-07 - 2224.JPG"" ""18055,172 - 2023-09-07 - 2224.JPG"""
"Rename "" 2023-09-08 - 2229.JPG"" ""18055,477 - 2023-09-08 - 2229.JPG"""
"Rename "" 2023-09-09 - 2134.JPG"" ""18055,556 -  2023-09-09 - 2134.JPG"""


Dit wil ik dan wegschrijven naar een *.bat file


Vast heel erg bedankt en allemaal een prettige wwekend



Opgelost


Code:
Sub oke()

    Dim Startrow As Long
    Dim Lrow As Long
    Dim Frow As Long
    Dim x As Long
    Dim map As String
    Dim Nieuwenaam As String
    Dim GASSTAND As String
    
    
    map = "D:\prive\cv ketel\"

If ActiveSheet.Name = "Meterstanden" Then

    Lrow = Worksheets("Meterstanden").Cells(Worksheets("Meterstanden").UsedRange.Rows.Count, 27).End(xlUp).row
    Frow = Worksheets("Meterstanden").Cells(1, 27).End(xlDown).row
    Startrow = ActiveCell.row
    
    Files = Split(CreateObject("WScript.Shell").Exec("cmd /c dir /b " & """" & map & """" & "\*.jpg*").StdOut.ReadAll, vbCr)
        For x = LBound(Files) To UBound(Files) - 1
        
        If Len(Cells(x + Startrow, "N")) = 8 Then
        GASSTAND = Left(Cells(x + Startrow, "N"), 5) & "-" & Mid(Cells(x + Startrow, "N"), 7, 2) & "0"
        MsgBox (Cells(x + Startrow, "N").Value)
        Else
        GASSTAND = Left(Cells(x + Startrow, "N"), 5) & "-" & Mid(Cells(x + Startrow, "N"), 7, 3)
        End If
            Cells(x + Startrow, "z").Value = "Rename " & """" & Files(x) & " " & GASSTAND & " - " & Files(x) & """"
            Cells(x + Startrow, "z").WrapText = False
            Worksheets("Meterstanden").Columns(26).AutoFit
        Next
Else
MsgBox "je staat in een verkeerde sheet"
End If

End Sub
 

Bijlagen

  • Map1.xlsm
    35,6 KB · Weergaven: 10
Laatst bewerkt:
Waarom wil je dat heroemen met een bat file doen en niet gewoon direct vanuit VBA?
 
antwoord op de vraag waarom via Excel

omdat de data in excel staat

en ik dit al moeilijk genoeg vind

Anders moet je dus wat vinden of files uit te lezen en excel data erbij te stoppen
 
antwoord 2

Dan heeft u de vraag niet goed gelezen of ik niet goed opgeschreven

De comma moet inderdaad worden vervangen door een min teken
maar ook achter de min teken staan nog een deel wat ook aangepast moet worden

als er XXX-75 staat moet het worden omgezet naar XXX-750

en ja dat lijkt makkelijk als je daar dagelijk mee bezig bent
Maar dat ben ik niet

ik zoek dus iets dat de cel uit lees
alles voor de komma kan blijven
de comma moet een min teken worden
en da de komma moet het dus een getal van 3 cijfers worden


ben al een tijd aan het zoeken maar ik vermoed dat het iets met ""Mid"" is
 
Je bedoelt denk ik XXX,75 naar XXX-750 ?
 
Zie bijlage.
 

Bijlagen

  • RenameFiles.xlsm
    17,2 KB · Weergaven: 20
Activesheet gebruiken is totaal overbodig.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan