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

macro veranderd tijd in american

  • Onderwerp starter Onderwerp starter Delee
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Delee

Gebruiker
Lid geworden
22 jul 2007
Berichten
32
Handmatig doet ik het goed, splits ik een kolom met datum en tijd in een datum en een -europese- tijd. Echter wanneer ik 'em via een macro laat verlopen dan maakt die macro er een amerikaanse tijdsnotatie van (AM/PM) en dat wil ik niet.Bekijk bijlage Gespreksdetails.xls
 
Dan moet je je Regionale settings goed zetten.
Ik opende je bestandje en kreeg gewoon de 24 uur tijd notatie.

Start -> Configuratiescherm (Control Panel) -> Regionale en taal instellingen (Region and Language) -> Format zetten op Dutch
 
Code:
Sub tst1()
For Each cl In Range("D2:D143")
    cl.Offset(, 1) = Split(cl, " ")(1)
    cl.Value = Split(cl, " ")(0)
Next
End Sub
 
Eerst mijn dankbaarheid betuigt!:
Tot dusver dank voor reageren! maar helaas... hij geeft een foutmelding op: cl.Offset(, 1) = Split(cl, " ")(1)
in:

Code:
For Each cl In Range("D8:D10000")
    cl.Offset(, 1) = Split(cl, " ")(1)
    cl.Value = Split(cl, " ")(0)
Next

1) de range wisselt
en 2) de cel wordt gesplit in [ 6-1-2012 00:00:00 ] en [ 0-1-1900 16:59:57 ]
en ik heb echt alleen de tijd nodig voor in een grafiek...

#
Code:
Sub Macro1()

    Cells.Select
    With Selection
        .Orientation = 0
        .AddIndent = False
        .ShrinkToFit = False
        .MergeCells = False
    End With
    Columns("E:F").Select
    Selection.Insert Shift:=xlToRight
    
    Application.DisplayAlerts = False
    
    For Each cl In Range("D8:D10000")
    cl.Offset(, 1) = Split(cl, " ")(1)
    cl.Value = Split(cl, " ")(0)
    Next
    
    
    
    Range("E7").Select
    ActiveCell.FormulaR1C1 = "tijd"

    Range("D7").Select
    ActiveCell.FormulaR1C1 = "Datum"

     
    Application.DisplayAlerts = True
    
    
    Range("A7:L7").Select
    Range(Selection, Selection.End(xlDown)).Select
    
    Selection.AutoFilter
    
    Selection.AutoFilter Field:=10, Criteria1:="Inkomend"
    Selection.AutoFilter Field:=9, Criteria1:="=3*", Operator:=xlOr, _
        Criteria2:="=755*"
    Selection.SpecialCells(xlCellTypeVisible).Select
    Range("D7:I7").Select
    Range(Selection, Selection.End(xlDown)).Select
    
    Selection.Copy
    Sheets.Add
    ActiveSheet.Paste
    Cells.Select
    Selection.ColumnWidth = 20
    Cells.EntireRow.AutoFit
    Sheets("Blad1").Select
    ActiveSheet.Name = "inkomend ALM+CAT"
    
    Columns("C:E").Select
    Application.CutCopyMode = False
    Selection.Delete Shift:=xlToLeft
    Range("A1:C1").Select
    Range(Selection, Selection.End(xlDown)).Select
    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
        Selection).CreatePivotTable TableDestination:="", TableName:= _
        "Draaitabel9", DefaultVersion:=xlPivotTableVersion10
    ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
    ActiveSheet.Cells(3, 1).Select
    
    ActiveSheet.PivotTables("Draaitabel9").AddDataField ActiveSheet.PivotTables( _
        "Draaitabel9").PivotFields("Bestemming"), "Aantal van Bestemming", xlCount
    With ActiveSheet.PivotTables("Draaitabel9").PivotFields("Bestemming")
        .Orientation = xlColumnField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("Draaitabel9").PivotFields("Datum")
        .Orientation = xlRowField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("Draaitabel9").PivotFields("Tijd")
        .Orientation = xlRowField
        .Position = 2
    End With
    Range("B4").Select
    Selection.Group Start:=0.333333333333333, End:=0.75, Periods:=Array(False _
        , False, True, False, False, False, False)
    ActiveWindow.SmallScroll Down:=0
    
    
    Charts.Add
    ActiveChart.Location Where:=xlLocationAsNewSheet
    ActiveChart.PivotLayout.PivotTable.AddDataField ActiveChart.PivotLayout. _
        PivotTable.PivotFields("Bestemming"), "Aantal van Bestemming", xlCount
    With ActiveChart.PivotLayout.PivotTable.PivotFields("Bestemming")
        .Orientation = xlColumnField
        .Position = 1
    End With
    With ActiveChart.PivotLayout.PivotTable.PivotFields("Datum")
        .Orientation = xlRowField
        .Position = 1
    End With
    With ActiveChart.PivotLayout.PivotTable.PivotFields("Tijd")
        .Orientation = xlRowField
        .Position = 2
    End With
    

    Sheets("CallDetailsReport").Select
    Range("A2").Select
    Selection.AutoFilter Field:=8, Criteria1:="=4*", Operator:=xlOr, _
        Criteria2:="=1*"
    Selection.SpecialCells(xlCellTypeVisible).Select
    Range("D7:H7").Select
    Range(Selection, Selection.End(xlDown)).Select
    
    Application.CutCopyMode = False
    Selection.Copy
    Sheets.Add
    ActiveSheet.Paste
    Cells.Select
    Selection.ColumnWidth = 25
    Cells.EntireRow.AutoFit
    Sheets("Blad2").Select
    Sheets("Blad3").Name = "inkomend LEL"
    
    Columns("C:D").Select
    Application.CutCopyMode = False
    Selection.Delete Shift:=xlToLeft
    Range("A1:C1").Select
    Range(Selection, Selection.End(xlDown)).Select
    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
        "Blad1!R1C1:R1600C3").CreatePivotTable TableDestination:="", TableName:= _
        "Draaitabel9", DefaultVersion:=xlPivotTableVersion10
    ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
    ActiveSheet.Cells(3, 1).Select
    Charts.Add
    ActiveChart.Location Where:=xlLocationAsNewSheet
    ActiveChart.PivotLayout.PivotTable.AddDataField ActiveChart.PivotLayout. _
        PivotTable.PivotFields("Bestemming"), "Aantal van Bestemming", xlCount
    With ActiveChart.PivotLayout.PivotTable.PivotFields("Bestemming")
        .Orientation = xlColumnField
        .Position = 1
    End With
    With ActiveChart.PivotLayout.PivotTable.PivotFields("Datum")
        .Orientation = xlRowField
        .Position = 1
    End With
    With ActiveChart.PivotLayout.PivotTable.PivotFields("Tijd")
        .Orientation = xlRowField
        .Position = 2
    End With
    
    
    
    
    Sheets("CallDetailsReport").Select
    Range("A2").Select
    Application.CutCopyMode = False
    ActiveSheet.ShowAllData
    Selection.AutoFilter Field:=9, Criteria1:="Uitgaand"

    Sheets("CallDetailsReport").Select
    Selection.SpecialCells(xlCellTypeVisible).Select
    Range("D7:G7").Select
    Range(Selection, Selection.End(xlDown)).Select
   
    Selection.Copy
    Sheets.Add
    ActiveSheet.Paste
    Cells.Select
    Selection.ColumnWidth = 25
    Sheets("Blad3").Select
    Sheets("Blad3").Name = "uitgaand"
    Range("A1:c1").Select
    Range(Selection, Selection.End(xlDown)).Select
    
    Application.CutCopyMode = False
    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
        "uitgaand!R1C1:R1801C3").CreatePivotTable TableDestination:="", TableName:= _
        "Draaitabel5", DefaultVersion:=xlPivotTableVersion10
    ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
    ActiveSheet.Cells(3, 1).Select
    Charts.Add
    ActiveChart.Location Where:=xlLocationAsNewSheet
    With ActiveChart.PivotLayout.PivotTable.PivotFields("Datum")
        .Orientation = xlRowField
        .Position = 1
    End With
    With ActiveChart.PivotLayout.PivotTable.PivotFields("Tijd")
        .Orientation = xlRowField
        .Position = 2
    End With
    With ActiveChart.PivotLayout.PivotTable.PivotFields("Beller")
        .Orientation = xlColumnField
        .Position = 1
    End With
    ActiveChart.PivotLayout.PivotTable.AddDataField ActiveChart.PivotLayout. _
        PivotTable.PivotFields("Beller"), "Aantal van Beller", xlCount
    ActiveChart.PlotArea.Select
    With ActiveChart
        .HasTitle = True
        .ChartTitle.Characters.Text = "uitgaand Lel en Alm"
    End With
    Sheets("Grafiek1").Select
    Sheets("Grafiek1").Name = "Grafiek UITGAAND"

    
End Sub
 
Laatst bewerkt door een moderator:
De voorzet van Rudi een tikje na gegeven:
Code:
Sub tst1()
Application.ScreenUpdating = False

For Each cl In Range("D2:D143")
    cl.Offset(, 1) = Split(cl, " ")(1)
    cl.Value = Split(cl, " ")(0)
Next

With Columns("D:D")
    .NumberFormat = "d/mm/yy;@"
    .EntireColumn.AutoFit
End With
    
With Columns("E:E")
    .NumberFormat = "hh:mm;@"
    .EntireColumn.AutoFit
End With
    
Application.ScreenUpdating = True

End Sub


Gebruik een volgende keer tags (#) rond je code of liever nog pas je laatste bericht even aan.
 
Laatst bewerkt door een moderator:
Dag Rob,
Ik begrijp je tags (#) niet helemaal. Ik heb nu voor en na mijn scriptje een # geplaatst.

Jouw gedeelte doet het nog niet en geeft een error in de regel #cl.Offset(, 1) = Split(cl, " ")(1)#
mijn vraag: het limiet dat jij in de regel #For Each cl In Range("D2:D143")# hebt gezet (tot regel D143), die zou ik toch op moeten kunnen hogen, soms is het bestand 5000 regels lang, soms 6000... Het Liefst hoog ik 'em op met "D:D"...

De bedoeling is dat ie de cel (D2) met " 1-6-2012 16:59:57 " uit elkaar haalt in een cel (D2) met de datum en een cel (E2) met het (europees) tijdstip.
Ik wil namelijk uiteindelijk in een grafiek per dag, per uur regels verwerken....
 
o, da's het probleem: verhoogde de reeks met een natte vinger tot D10000 en daar struikelt ie omdat (bijv) regel D8345 t/m D10000 niet voorkomt (deze keer). Als je jouw code uitvoert met een strikt eind (in jouw code D143) dan doet ie het probleemloos t/m regel 143...
 
@Delee Code dient tussen de codetags geplaatst te worden. Selecteer je code en druk #
 
Code:
Sub tst1()
For Each cl In Range("D2:D" & Cells(Rows.Count, 4).End(xlUp).Row)
    cl.Offset(, 1) = Split(cl, " ")(1)
    cl.Value = Split(cl, " ")(0)
Next
End Sub
 
Code:
Sub snb()
  For Each cl In cells(2,4).currentregion.resize(,1)
    if cl.row>1 then cl.resize(,2)= Split(cl)
  Next
End Sub

tekst naar kolommen zou ook een optie zijn
 
Laatst bewerkt:
Bekijk bijlage Gespreksdetails.xlsHij gaat erg goed! alleen.. even verderop in de procedure wil ik van de gegevens een grafiek maken en wil ik mijn tijdstippen per uur groeperen. Nu herkent ie de cel waarde niet als tijd, wat doe ik fout?
Ik heb een bestand met -een beetje- data toegevoegd en mijn macrootjes. In macro test1() gaat ie fout.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan