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

Opslaan als met datum in macro

Status
Niet open voor verdere reacties.
dan moet je ".Saved" gebruiken
Code:
Sub SorBorSav()
'
' SorBorSav Macro
' De macro is opgenomen op 04-02-2011 door Lucas.
'
' Sneltoets: CTRL+SHIFT+B
'

  Dim Bestandsnaam As String
  Dim Sysdate
  Dim LastSaved As Date, Antw As Integer
  Dim tel As Integer, Letter As String
  Sysdate = Format(Date, "yyyymmdd")
  tel = 0
  Do
    If tel > 0 Then
      Letter = "-" & LCase(Replace(Left(Cells(1, tel).Address, 3), "$", ""))  'vertaal teller naar een kolomletter
    Else
      Letter = ""
    End If
    Bestandsnaam$ = "G:\" & [C3] & "-" & Sysdate & Letter & ".xls"  'bestand noemt straks zo
    If Dir(Bestandsnaam$) = "" Then                        'bestaat die naam al in die directory ?
      Antw = vbYes
      If tel <> 0 And ActiveWorkbook.Saved Then Antw = MsgBox("Hou even je aandacht erbij en stop met kletsen !!" & vbLf & "Je hebt nog maar opgeslagen om " & Format(LastSaved, "hh:mm:ss"), vbYesNo, "Opnieuw opslaan ?????")
      If Antw = vbYes Then
        ActiveWorkbook.SaveAs Bestandsnaam$                'zo niet saven
        MsgBox "Het bestand              " & "'" & [C3] & "-" & Sysdate & Letter & "'" & "              is opgeslagen" & " , vergeet niet nog uit te printen"
      End If
      tel = 0                                              'teller op 0 zetten om uit de loop te komen
    Else
      tel = tel + 1                                        'bestand bestond al, dus teller 1 ophogen
      LastSaved = FileDateTime(Bestandsnaam$)
    End If
    If tel > Columns.Count Then MsgBox "Paniek": Exit Sub
  Loop While tel <> 0
End Sub
 
Moet het dan in plaats van
Code:
[COLOR="red"].Application.CopyObjectsWithCells = False[/COLOR]
,
Code:
[COLOR="green"].Application.SavedObjectsWithCells = False[/COLOR]
worden, Cow18?
 
ik kan je niet volgen, die knop moet plots weg of zo ? Ik weet niet of er nog andere besturingselementen, of zo staan in dit werkblad anders moet het iets uitgebreider.
anders werkt onderstaande als je ten minste verwijst naar het juiste werkblad waar die knop weg moet.
Code:
Sub weg()
  On Error Resume Next
  ActiveSheet.Shapes(1).Delete
  On Error GoTo 0
End Sub
 
Jaaaaahhh, hij doet het. Perfect. Ben je alweer klaar voor een nieuwe taart?:)
 
taart ? nee, mijn cholersterol !!! doe maar een biertje
 
taart ? nee, mijn cholersterol !!! doe maar een biertje

cholesterol in het ene geval, calorieen in de andere. Wijn is wat dat betreft beter, Cow18.

We hebben hiermee, denk ik een routine overbodig gemaakt, namelijk de tijdroutine. Macro veranderd bij het indrukken van de knop, de bestandsnaam, maar haalt tevens ook de knop zelf weg. Dus de gebruiker weet, als de knop er niet meer is, dat ie m al opgeslagen heeft. Sterker nog, hij kan m niet meer opslaan, knop is weggggggg. Hahahaa.
 
jij tevreden, iedereen tevreden :p:thumb:.
 
Aftesten Cel-lengte

Tijdens het ontlasten:o schoot me het volgende binnen:D

Aftesten van de cellengte, en na een keer of twee vallen, kwam ik tot de volgende code:


Code:
 Lengte = Len(Cells(3, 3).Value)
    
    If Lengte <> 15 Then
       a = MsgBox("Aansluitnummer in Cel C3 heeft niet de juiste lengte", vbOKOnly)
       Exit Sub
    End If
 
Laatst bewerkt:
moet je geen tussentijden en lengtes meten tijdens het ontlasten ? straks kan je dan conclusies trekken over consistentie en zo ... :evil:
 
Mod, als ik de vraag op opgelost zet, kan ik dan het onderwerp ook heropenen wanneer nodig?
 
Beter een nieuwe vraag beginnen met event. een link naar deze vraag :thumb:
 
datum in aangewezen cel bij openen bestand

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sheets("blad1").Range("a1") = Date
End Sub

Deze routine doet dat bij het afsluiten van het bestand, maar welke gebruik ik bij het openen? En is de datum in die cel dan statisch? IK sla namelijk het bestand op met die datum, wanneer ik m de volgende dag weer open moet nog steeds dezelfde datum erin staan.

Ik heb ooit eens in de cel een formule =(Vandaag) erin gehad, maar dat is allesbehalve statisch..
 
Wat bedoel je met "Welke gebruik ik bij het openen" ? En inderdaad, deze datum is dan zo statisch als statisch maar kan zijn :)
 
A: Wanneer ik het bestand open moet cel B16 automatisch gevuld worden met de datum van vandaag. Alleen dat moet er "hard" inkomen, wanneer ik het bestand dan opsla en over twee maanden van nu weer open, moet nog steeds de datum van vandaag erin staan. Daarom is =Vandaag() ook niet bruikbaar, omdat die steeds mee veranderd.

B: Ik wil niet dat de gebruiker het zelf moet intikken.
 
Code:
Private Sub Workbook_Open()
  Sheets("Blad1").Range("B16")=Date 
End Sub
 
Zou het zo wel lukken?
Als cel B16 leeg is zet hij de datum anders niets en blijft de datum zoals hij was denk ik.
Code:
Private Sub Workbook_Open()
  If Sheets("Blad1").Range("B16") = "" Then Range("B16") = Date
End Sub
 
Rudi.

Zou die niet veranderen als je het opnieuw opent? :rolleyes:
 
Heb de volgende code gekregen van een vriend, maar die werkt alleen wanneer ik in ontwikkelmodus op de afspeelknop druk. De sub word niet bij het openen van het bestand geactiveerd. Bovenstaande codes resulteren in een fout.

Code:
Private Sub Worksheet_Activate()
    Dim sysdate
    sysdate = Format(Date, "dd-mm-yyyy")
    
    If Range("B16").Value = "" Then
        Range("B16").Value = sysdate
    End If
End Sub
 
Ga eens naar een ander blad en terug.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan