One Drive üzerinde ortak kullanılan dosyada makro

Katılım
19 Mart 2010
Mesajlar
144
Excel Vers. ve Dili
Office 365 İngilizce
Altın Üyelik Bitiş Tarihi
20-01-2024
Ekipte 3 kişiyiz. One drive üzerinde ortak kullandığımız bir excel dosyasında bazı makrolar dosya yolu da içeriyor. Ama herkesin bilgisayarında dosya yolu farklı. Örneğin benim bilgisayarımda resimlerin olduğu klasör "C:\Users\MUSTAFA\OneDrive\Belgeler\OneDrive\PAYLASIM\15-ÜRÜN FOTOĞRAFLARI\ürün resim" iken diğer arkadaşımda aynı klasörün yolu "C:\Users\HAKAN\OneDrive\Belgeler\OneDrive\PAYLASIM\15-ÜRÜN FOTOĞRAFLARI\ürün resim" şeklinde.

Bu durumda her kullanıcı için ayrı makro mu yazmak gerekiyor? Makroyu bir butona atadım ve her kullanıcı için ayrı buton koymak çok çirkin duruyor dosyada. Başka çözüm yolu var mıdır?
 

Tores333

Altın Üye
Katılım
26 Ocak 2017
Mesajlar
37
Excel Vers. ve Dili
Microsoft 365 EN 64 bit
Altın Üyelik Bitiş Tarihi
23-06-2025
merhaba,

Onedrive i web den actıktan sonra ilgili dosyayı secerek, details dedikten sonra sag ekranda cıkan alanda Path var onu macronuzda kullabilirsiniz. herkes için aynı dosya yolu olacaktır.

Türkçe nasıl göründüklerini bilmediğim için ingilizce terimler kullandım.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,267
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Aşağıdaki gibi kullanabilirsiniz.

C++:
Option Explicit

Sub Test()
    Dim Yol As String
    Yol = "C:\Users\" & Environ("Username") & "\OneDrive\Belgeler\OneDrive\PAYLASIM\15-ÜRÜN FOTOĞRAFLARI\ürün resim"
    MsgBox Yol
End Sub
 
Katılım
19 Mart 2010
Mesajlar
144
Excel Vers. ve Dili
Office 365 İngilizce
Altın Üyelik Bitiş Tarihi
20-01-2024
Aşağıdaki gibi kullanabilirsiniz.

C++:
Option Explicit

Sub Test()
    Dim Yol As String
    Yol = "C:\Users\" & Environ("Username") & "\OneDrive\Belgeler\OneDrive\PAYLASIM\15-ÜRÜN FOTOĞRAFLARI\ürün resim"
    MsgBox Yol
End Sub
Korhan bey,

Bu şekilde güncellediğimde benim bilgisayarda çalıştı ama diğer arkadaşımın bilgisayarında çalışmadı makro. Hata da vermedi, resimleri de getirmedi.
 
Katılım
19 Mart 2010
Mesajlar
144
Excel Vers. ve Dili
Office 365 İngilizce
Altın Üyelik Bitiş Tarihi
20-01-2024
merhaba,

Onedrive i web den actıktan sonra ilgili dosyayı secerek, details dedikten sonra sag ekranda cıkan alanda Path var onu macronuzda kullabilirsiniz. herkes için aynı dosya yolu olacaktır.

Türkçe nasıl göründüklerini bilmediğim için ingilizce terimler kullandım.
Sağ taraftaki Path kısmında sadece klasörün ismi yazıyor.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,267
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Yol aynı sadece isim farklı ise çalışması gerekir diye düşünüyorum.

Kodu çalıştırdığınızda diğer pclerde mesaj olarak ne dönüyor.
 
Katılım
19 Mart 2010
Mesajlar
144
Excel Vers. ve Dili
Office 365 İngilizce
Altın Üyelik Bitiş Tarihi
20-01-2024
Yol aynı sadece isim farklı ise çalışması gerekir diye düşünüyorum.

Kodu çalıştırdığınızda diğer pclerde mesaj olarak ne dönüyor.
Hocam yol aynı, zaten onedrive üzerinde olduğu için sadece kullanıcı adı kısmı değişken. Diğer pc'lerde makroyu çalıştırınca hiç bir hata mesajı da dönmüyor, resimleri de getirmiyor. Ama benim bilgisayarda sorunsuz çalışıyor. Anlayamadım sebebini maalesef.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,267
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Benim verdiğim kodu olduğu gibi diğer pclerde deneyiniz. Size mesaj olarak bulduğu yolu vermesi gerekiyor. Vermiyorsa başka sorun vardır.
 
Katılım
19 Mart 2010
Mesajlar
144
Excel Vers. ve Dili
Office 365 İngilizce
Altın Üyelik Bitiş Tarihi
20-01-2024
Benim verdiğim kodu olduğu gibi diğer pclerde deneyiniz. Size mesaj olarak bulduğu yolu vermesi gerekiyor. Vermiyorsa başka sorun vardır.
Korhan hocam, son çözüm yolu olarak şöyle bir şey denenebilir mi? Olursa kodu nasıl düzenlemeliyim?

Eğer kullanıcı adı "mustafa" ise A yolunu kullan, değilse B yolunu kullan

Normalde kodum şu şekilde;

Kod:
Sub Resimgetirmustafa()
    
    Dim NoA As Long, i As Long
    Dim PicFile As String, PicTop As Integer, PicLeft As Integer, PicW As Integer, PicH As Integer
    NoA = Range("D" & Rows.Count).End(xlUp).Row
 
    For i = 26 To 75
        PicFile = "C:\Users\kesek\OneDrive\Belgeler\OneDrive\PAYLASIM\15-ÜRÜN FOTOĞRAFLARI\ürün resim\" & Range("D" & i).Text & ".png"
        If Dir(PicFile) = Empty Then
            Range("B" & i) = ""
            GoTo ResumeFor:
        End If
        PicTop = Range("B" & i).Top + 2
        PicLeft = Range("B" & i).Left + 2
        PicW = Range("B" & i).Width - 2
        PicH = Range("B" & i).Height - 2
        Set MyPic = ActiveSheet.Shapes.AddPicture(PicFile, True, True, PicLeft, PicTop, PicW, PicH)
ResumeFor:
    Next
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,267
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Aşağıdaki komut diğer pclerde kullanıcı adını veriyor mu?

C++:
MsgBox Environ("Username")
 

Tores333

Altın Üye
Katılım
26 Ocak 2017
Mesajlar
37
Excel Vers. ve Dili
Microsoft 365 EN 64 bit
Altın Üyelik Bitiş Tarihi
23-06-2025
Sağ taraftaki Path kısmında sadece klasörün ismi yazıyor.
örnek bu sekilde.
MS Teams kullanıyorsanız, ortak bir team olusturup dosyayı ordan da deneyebilirsiniz. ortak alanlar tek link oluyor. biz şirkette o şekilde kullanıyoruz.
237192
 
Üst