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

VBA code datum format aanpassen

Status
Niet open voor verdere reacties.

Yasmin

Gebruiker
Lid geworden
22 mei 2004
Berichten
183
Beste Excellers,

Wie kan mij helpen met een VBA code die onderstaande taken kan uitvoeren in bijgaand bestand?

1. In kolom D staan namen die beginnen met ‘UK spatie’ verwijder deze 3 posities.
2. Converteer in kolom C de datum naar datum format dd-mm-jj behalve het woord datum in de kolomkop.
3. Converteer .xls extensie naar xlsx bestandsindeling.

Dit voorbeeld bevat slechts 3 namen, in de praktijk kunnen dit er wel 30-50 zijn.
 

Bijlagen

Neem eens een macro op terwijl je met de muis : -1 kolom selecteert, - via ctrl-H een tekenreeks vervangt door een andere (of door niets).
 
Punt 1 is gelukt zie bijlage maar hoe pak ik onderstaande punten aan?

2. Converteer in kolom C de datum naar datum format dd-mm-jj behalve het woord datum in de kolomkop.
3. Converteer .xls extensie naar xlsx bestandsindeling.
 

Bijlagen

Kolom C is leeg.
Kolom D bevat geen datums maar tekst, dus welk jaar moet daar dan bij komen en waar kan deze vandaan worden gehaald?
De laatste 4 posities van T2?
En waarom zou je dat doen als het jaar al duidelijk is?

Een.xls document kan je met Opslaan als omzetten naar een .xlsx document.
Code:
Application.DisplayAlerts = False
ThisWorkbook.SaveAs Replace(ThisWorkbook.FullName, ".xls", ".xlsx"), 51
 
Laatst bewerkt:
Beste Edmoor,

Regels dienen ingelezen te worden in een facturatie programma welke een dd-mm-jj formaat zoekt.
Indien mogelijk de tekst naar datums converteren en de laatste 2 posities van T2 toevoegen.
 
Probeer deze eens:
Code:
Sub Macro2()
    Dim i As Long
    
    With ActiveSheet
        Application.ScreenUpdating = False
        For i = 12 To .Cells(.Rows.Count, "C").End(xlUp).Row
            If .Cells(i, 3) <> "" And InStr(1, "zazomadiwodovr", Left(.Cells(i, 3), 2)) > 0 Then
                If Right(.Cells(i, 3).Value, 2) <> Right(.Range("T2"), 2) Then
                    .Cells(i, 3).Value = .Cells(i, 3).Value & "-" & Right(.Range("T2"), 2)
                End If
            End If
        Next i
        .Columns("C").ColumnWidth = 6#
        Application.ScreenUpdating = True
    End With
End Sub
 
Laatst bewerkt:
Edmoor,

Het jaartal komt er netjes bij alleen ik verwacht een datum format dd-mm-jj met celeigenschap Datum.
Nu staat staat er ma 13-06-22
 
Dus die dag moet er niet bij?
Dat is dan eenvoudig in de code aan te passen.
Code:
Sub Macro2()
    Dim i As Long
    
    With ActiveSheet
        Application.ScreenUpdating = False
        For i = 12 To .Cells(.Rows.Count, "C").End(xlUp).Row
            If .Cells(i, 3) <> "" And InStr(1, "zazomadiwodovr", Left(.Cells(i, 3), 2)) > 0 Then
                If Right(.Cells(i, 3).Value, 2) <> Right(.Range("T2"), 2) Then
                    .Cells(i, 3).Value = Mid(.Cells(i, 3).Value, 4) & "-" & Right(.Range("T2"), 2)
                End If
            End If
        Next i
        Application.ScreenUpdating = True
    End With
End Sub
 
IK vind het wel navrant dat jullie gebruik maken van een waardeloos gestructureerd werkblad (samengevoegde cellen), van een miljardenbedrijf crystal decisions, dat goud geld verdient aan de gebreken van SAP en dan hier op een vrijwilligersforum vragen stellen om de gebreken van waardeloze, betaalde produkten op te heffen.
Ik zou zeggen: neem kontakt op met de aftersales van Crystal Decisions om hun eigen falen op te lossen.
 
Hartelijk bedankt voor de hulp snb en Edmoor,
Het werkt!

Is idd een geen fraai bestand wat aangeleverd wordt.
We zijn hierover in gesprek.
Dit is een tijdelijke oplossing voor ons.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan