Kullanıcı adı

Katılım
21 Kasım 2004
Mesajlar
87
merhaba,
"C:\Documents and Settings\???????"; soru işareti olan yerdeki kullanıcı adını makro ile nasıl tespit ederiz.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,030
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
"C:\Documents and Settings\???????"; soru işareti olan yerdeki kullanıcı adını makro ile nasıl tespit ederiz.
Kullanıcı adından kastınız nedir?, Yukarıdaki yazım şeklinden ben sanki bu klasör altındaki dosya isimlerini soruyorsunuz gibi anladım doğrumu?
 
Katılım
21 Kasım 2004
Mesajlar
87
WindowsXP'de kullanıcının ayarlarının ve belgelerinin oluşturulduğu klasör vardır. Başlat menüsünde de kullanıcı adımız yazılıdır. "C:\Documents and Settings\nadir\Belgelerim", bu örnekte kullanıcı adı "nadir" gibi.

Mesela şu kod kayıtlı kullanıcıyı gösterir:
Sub kullanici()
MsgBox Application.UserName
End Sub

Benim aradığım yukarıda da belirttiğim kullanıcı klasörünün adı.
 
Katılım
2 Mart 2005
Mesajlar
556
Excel Vers. ve Dili
Office 2013 Türkçe
Merhaba,

Aşağıdaki kodları ve linki bir inceleyin.

Declare Function GetUserName Lib "advapi32.dll" Alias _
"GetUserNameA" (ByVal lpBuffer As String, nSize As Long) _
As Long
Sub Alt_Klasör_İsimleri()
Dim Buffer As String * 100
Dim BuffLen As Long
BuffLen = 100
Dim a As String
GetUserName Buffer, BuffLen
a = Left(Buffer, BuffLen - 1)

Dim ds, f, f1, fc, s
Set ds = CreateObject("Scripting.FileSystemObject")
Set f = ds.GetFolder("C:\Documents and Settings\" & a)
Set fc = f.SubFolders
For Each f1 In fc
s = s & f1.Name
s = s & vbCrLf
Next
MsgBox s
End Sub


http://www.excel.web.tr/viewtopic.php?t=4883

Sanırım istediğinizi bulacaksınız.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,270
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Aşağıdakilerden bir tanesi sizin aradığınızdır herhalde:

1) Windows'u o an kullanan, kayıtlı kullanıcıya ait My Documents - Belgelerim klasörüne ait dosya yolu:

[vb:1:ab041a8d4a]Const CSIDL_PERSONAL = &H5

Type SHITEMID
cb As Long
abID As Byte
End Type

Type ITEMIDLIST
mkid As SHITEMID
End Type

Declare Function SHGetSpecialFolderLocation Lib "shell32.dll" _
(ByVal hwndOwner As Long, ByVal nFolder As Long, pidl As ITEMIDLIST) As Long

Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" _
(ByVal pidl As Long, ByVal pszPath As String) As Long
'
Sub KullaniciBelgelerimKlasoru()
MyDocPath = GetSpecialfolder(CSIDL_PERSONAL)
MsgBox MyDocPath
End Sub
'
Function GetSpecialfolder(CSIDL As Long) As String
Dim r As Long
Dim Path$
Dim IDL As ITEMIDLIST
r = SHGetSpecialFolderLocation(100, CSIDL, IDL)
If r = 0 Then
Path$ = Space$(512)
r = SHGetPathFromIDList(ByVal IDL.mkid.cb, ByVal Path$)
GetSpecialfolder = Left$(Path$, InStr(Path$, Chr$(0)) - 1)
Exit Function
End If
GetSpecialfolder = ""
End Function
[/vb:1:ab041a8d4a]

2) Windows'u o an kullanan kayıtlı kullanıcı adı:

[vb:1:ab041a8d4a]Declare Function WNetGetUser Lib "mpr.dll" Alias "WNetGetUserA" _
(ByVal lpName As String, _
ByVal lpUserName As String, _
lpnLength As Long) As Long

Const NO_ERROR = 0
'
Sub KullaniciAdi()
Dim strBuf As String, lngUser As Long, strUn As String
strBuf = Space$(255)
lngUser = WNetGetUser("", strBuf, 255)
If lngUser = NO_ERROR Then
strUn = Left(strBuf, InStr(strBuf, vbNullChar) - 1)
MsgBox "Kullanici Adi : " & strUn
End If
End Sub
[/vb:1:ab041a8d4a]

3) Üzerine Excel'in kaydedildiği kullanıcının adı:

(Menülerde, Tools >> Options > General sekmesinden her zaman için manuel olarak değiştirilebilir)

[vb:1:ab041a8d4a]Sub KayitliExcelKullanicisi()
MsgBox Application.UserName
End Sub
[/vb:1:ab041a8d4a]

Edit: Sn. bedersu, ekranı güncellemeden mesajımı gönderdiğim için, sizinkini sonradan fark ettim.
 
Katılım
21 Kasım 2004
Mesajlar
87
Sayın bedersu ve Raider yardımlarınız için teşekkürler. Sorum, Raider'in 2 no.lu "KullaniciAdi" adlı kodu ile cevabını buldu.

Bir de Raider den öğrenmek istediğim; Belgelerim klasörüne ait dosya yolunu bulmak için bu kadar uzun kodu yazmanızın sebebi nedir.
Kısa olarak;
Sub belgelerimyolu()
MsgBox Application.DefaultFilePath
End Sub

kodu ile de Belgelerim dosya yolu bulunuyor. İki kod arasındaki farkı açıklarsanız aydınlanmış olacağım.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,270
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Nadir' Alıntı:
Bir de Raider den öğrenmek istediğim; Belgelerim klasörüne ait dosya yolunu bulmak için bu kadar uzun kodu yazmanızın sebebi nedir.
Bahsettiğiniz kodla bulunan dosya yolu, Excel'in varsayılan dosya yolu My Documents - Belgelerim olarak tanımlandığı için size o an için doğru sonuçmuş gibi gelebilir. Ancak, kullanıcılar bu dosya yolunu her zaman için elle değiştirilebilir. (Aşağıdaki resimde belirtilen yer)

Benim önerimdeki kodlar ise şaşmaz :mrgreen: Windows'a o an Login olmuş kullanıcıya ait, My Documents - Belgelerim dosya yolunu bulur.

Kaldı ki; bir makinada birden fazla kullanıcı tanımlanmış olabilir ama bu kullanıcılardan sadece birinin üzerine kayıtlıdır Excel. Dolayısı ile, o tip bir dosya yolu her makinada size her zaman doğru sonuç vermeyebilir.
 
Katılım
2 Mart 2005
Mesajlar
556
Excel Vers. ve Dili
Office 2013 Türkçe
Nadir' Alıntı:
Sorum, Raider'in 2 no.lu "KullaniciAdi" adlı kodu ile cevabını buldu.
Sayın Nadir;
Kıskanıyorum ama,benim verdiğim kodlar da sayın Raider'in cevabı ile aynısını vermiyor mu? :eek:

bedersu' Alıntı:
Declare Function GetUserName Lib "advapi32.dll" Alias _
"GetUserNameA" (ByVal lpBuffer As String, nSize As Long) _
As Long
Sub Alt_Klasör_İsimleri()
Dim Buffer As String * 100
Dim BuffLen As Long
BuffLen = 100
Dim a As String
GetUserName Buffer, BuffLen
a = Left(Buffer, BuffLen - 1)

End Sub
Tabi bu işin esprisi.Sayın Raider'ın bu konulara olan hakimiyetini çok uzun süredir takip ve takdir ediyorum.Tabi ki insan olmanın vermiş olduğu duygu ile de kıskanıyorum ama bu kıskanmam,gıpta sınırları içinde. :bravo:
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,270
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Sn. bedersu, nazik mesajınız için teşekkür ederim.

Bizler de sizin mesajlarınızı ilgiyle izliyoruz, :)bravo:) bundan kuşkunuz olmasın.
 
Katılım
28 Nisan 2005
Mesajlar
252
Excel Vers. ve Dili
Excel 2010 Türkçe
Merhaba

Bende yukardaki gibi windows kullanıcısının (güncel) ismini ve dosyanın kayıtlı olduğu path'i excel sayfasında bir hücreye yazdırmak istiyorum. Yardım edebilirmisiniz.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,270
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
..... excel sayfasında bir hücreye yazdırmak istiyorum. Yardım edebilirmisiniz.
Kodlarda MsgBox yerine [A1] yazın.
 
Katılım
21 Kasım 2004
Mesajlar
87
Sayın Raider, açıklamalarınız için gerçekten çok teşekkür ederim.
Bahsettiğiniz; "o tip bir dosya yolu her makinada size her zaman doğru sonuç vermeyebilir."i öğrenmem, benim için ileride karşılaşacağım bir sorunu önceden düzeltmem anlamını taşımaktadır. Tekrar çok teşekkür ederim.
Bu arada bedersu'nun "benim neyim eksik" demesi, Raider'in hakikaten kıskanılacak biri olduğunu göstermektedir. :8)
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,270
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Tekrar merhaba;

Hafta sonu biraz Windows Scripting ile uğraşırken, yukarıdaki konuyla ilgili kestirme bir yol buldum.....onu buraya aktarmak istedim.

(Windows'a o an login olmuş kayıtlı kullanıcı adının bulunması)

[vb:1:02520924ac]Sub KullaniciAdi()
Dim WscNetwork As Object
Set WscNetwork = CreateObject("WScript.Network")
MsgBox "Kullanici Adi : " & WscNetwork.UserName
Set WscNetwork = Nothing
End Sub
[/vb:1:02520924ac]
 
Katılım
2 Mart 2005
Mesajlar
556
Excel Vers. ve Dili
Office 2013 Türkçe
Sayın Raider,
Hemen denedim kodları.Gerçekten kısa ama işe yarar bir kod.Teşekkürler.
 
Katılım
2 Mart 2005
Mesajlar
556
Excel Vers. ve Dili
Office 2013 Türkçe
Tipik bir, Raider çalışmasının bulunduğu bir link :bravo: :bravo: :bravo:

Sayın Raider;

bu çalışmalar güzel ama hep böyle olmaz ki.bize yol gösterir misiniz bu seviyelere çıkabilmemiz için?Daha önceden bir yazınızda,ilk bilgisayar deneyiminizde CDRom'la ilgili bir anınızı anlatmıştınız.Nereden nereye.Bu mesafeyi almayı nasıl becerdiniz Allah aşkına anlatır mısınız?Yoksa size ilham veren bir meleğiniz mi var :)
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,270
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
:D

Sayın bedersu, bakın böyle olmuyor ama ....

Hep, beni mahcup edecek şeyler yazıyorsunuz .....

:D

Ben de hep, size teşekkür etmek durumunda kalıyorum ... :)

bedersu' Alıntı:
Yoksa size ilham veren bir meleğiniz mi var

Aslında var tabii.... az önce kendisiyle (biricik eşimle.... oğlum, yine bilgisayar başında kendi çapında yeni virüs programcıkları hazırlıyordu :shock: ....) dışarda akşam yemeğindeydik.... (Bugün benim doğum günümdü de .... :mrgreen:)

bedersu' Alıntı:
Daha önceden bir yazınızda,ilk bilgisayar deneyiminizde CDRom'la ilgili bir anınızı anlatmıştınız.Nereden nereye
Haklısınız, ..... ilk defa CD'i o zamanlar bazı taksi ve minibüslerde şöför mahallinde pırıltı zincirlerle arka dikiz aynasına asılmış nesneler olarak gördükten sonra, ilk defa edindiğim kendi bilgisayarıma ters olarak takıp da çalıştıramadığımdan beri..... itiraf ediyorum, birazcık da olsa yol kat ettim .... en azından, şimdi daha dikkatli davranıp, CD' nin hangi yüzü yukarı bakacak diye kontrol ettikten sonra, yerine yerleştiriyorum.

Þaka bir yana, bu tür sevgi ve fikir alış veriş platformlarında ben de hepimiz gibi her gün yeni bir şeyler öğreniyorum ve bunları da paylaşmaktan çok, ama çok mutlu oluyorum.

Herkese iyi akşamlar / iyi geceler ....
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,270
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
***** Silindi **** (Raider ®)
 
Katılım
2 Mart 2005
Mesajlar
556
Excel Vers. ve Dili
Office 2013 Türkçe
:hey:
 
Üst