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

usernaam weergeven in kolom z

Status
Niet open voor verdere reacties.

davylenders123

Gebruiker
Lid geworden
20 jun 2010
Berichten
902
Ik zou graag in een excel bestand hebben dat de user naam van de persoon die het bestand heeft aangepast wordt weergegeven in kolom z.

Als ook zou ik graag hebben dat het excel bestand zich sluit als de macro is uitgevoerd.

Hoe kan ik dit oplossen ?
Er staat en macro in het bestand.

Code:
Sub mailoutlook()



If vbNo = MsgBox("Ben je wel zeker dat je die mail wil verzenden", vbYesNo) Then Exit Sub

ActiveSheet.Unprotect Password:="0000"
    Cells.Select
    Selection.Locked = True
    Selection.FormulaHidden = False
    Range("B8").Select
    ActiveSheet.Protect Password:="0000", DrawingObjects:=True, Contents:=True

pad = "G:\Pakketten\Everyone\Herstellingsaanvraag crown\Reeds aangevraagd\" & Format(Sheets("Reparaties").Range("B2"), "yyyy mm") & "\"
naam = "Reparatie aanvraag Crown doorgestuurd op " & Format(Sheets("Reparaties").Range("B2"), "dd-mm-yyyy hh" & "u " & "mm") & ".xls"
ActiveWorkbook.SaveAs Filename:=pad & naam


'ActiveWorkbook.SaveAs Filename:=("G:\Pakketten\Everyone\Herstellingsaanvraag crown\Reeds aangevraagd" & "\Reparatie aanvraag Crown van   " & Format(Now, "dd-mm-yyyy hh" & "u " & "mm") & ".xls")'



  With CreateObject("Outlook.Application").createitem(olMailItem)
  .To = "davy.lenders@l.be"
  .cc = ""
  .Subject = "Reaparatie aanvraag voor bt's of heftrucken  Turnhout " & Format(Now, "dd-mm-yyyy hh" & "u " & "mm") & ".xls"
  .body = Replace("Goedemorgen,##Bij deze stuur ik jullie een excel file waar in vermeld staat welke bt's of heftrucks er stuk zijn. #Gelieve deze zo snel mogelijk te komen maken.#Het kan zijn dat je meer mails krijgt op 1 dag, dit is dan elke keer voor een andere reparatie.##Met Vriendelijke Groeten## medewerker###", "#", vbCr)
  .Attachments.Add ThisWorkbook.Path & "\" & ThisWorkbook.Name
  .Send
  End With
  

  ActiveSheet.Unprotect Password:="0000"
  Cells.Select
    Selection.Locked = False
    Selection.FormulaHidden = False
    Range("1:1,2:2,3:3,4:4,5:5,A18:A26").Select
    Range("A18").Activate
    Selection.Locked = True
    Selection.FormulaHidden = False
    Range("A6:B16,B2").Select
    Selection.ClearContents
    Cells.Select
  ActiveSheet.Protect Password:="0000", DrawingObjects:=True, Contents:=True
    
    
    Range("B11").Select
  Application.DisplayAlerts = False
  ActiveWorkbook.SaveAs Filename:=("G:\Pakketten\Everyone\Herstellingsaanvraag crown\Reparaties Crown bt's.xls")
  Application.DisplayAlerts = True
  MsgBox "De e - mail is correct verstuurd ", vbInformation
  
  
End Sub
 
Wat heeft die code met je vraag te maken? En wil je die gebruikersnaam in elke cel in kolom Z? En op welk moment moet deze daar dan worden geplaatst? En bij welke actie moet dan de benodigde Sub/functie ervoor worden geactiveerd?

Die naam kun je in ieder geval ophalen met: Environ("USERNAME")
 
Laatst bewerkt:
edmoor

Ik heb de code erbij gedaan omdat de functies daarbij in zouden moeten.

Als een gebruiker wijzigingen aanbrengt aan het bestand dan zou zijn gebruikersnaam onmiddelijk in de cel Z3 komen staan.

En op het laatste als de macro zijn werk heeft gedaan blijft het bestand open staan nu.
Dit zou moeten sluiten.
 
De benodigde code volgens je wens kan dus niet in die Sub erbij omdat je vraagt om een Worksheet event. Die code zal dus achter het werkblad moeten komen.
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Range("Z3") = Environ("USERNAME")
End Sub

Wat bedoel je met de laatste macro? En dan moeten neem ik aan de wijzigingen worden opgeslagen?
Sluit die dan af met:
Code:
    ActiveWorkbook.Save
    ThisWorkbook.Saved = True
    Application.Quit
 
Laatst bewerkt:
edmoor

Nog eens bedankt voor je hulp dit is nu helemaal zoals het moest worden.:thumb::thumb:
 
Je zou deze kunnen nemen voor elke verandering in het werkboek.
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
 with Sheets(1).Range("A1")
  .value = FileDateTime(ThisWorkbook.FullName)
  .offset(,1) = environ("username")
end with
End Sub

Maar als je tevreden bent is dat natuurlijk prima.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan