- D1Rect: Nagy "hülyétkapokazapróktól" topik
- A magyar Duke Nukem 3D
- lkristóf: Prohardver fórum userscript – hogy lásd, mikor neked válaszoltak
- Luck Dragon: Asszociációs játék. :)
- MasterDeeJay: RAM gondolatok: Mennyi a minimum? DDR3 is jó?
- total90: SSD és HDD árak 2026-ban – most kell vásárolni, vagy várni 2028-ig?
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- Kókuszdió: Tápegység – hova jutottunk 5 év alatt?
- sziku69: Fűzzük össze a szavakat :)
- sziku69: Szólánc.
-
LOGOUT
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
-
Traxx
őstag
válasz
Delila_1
#34863
üzenetére
és sztanozs: köszönöm

Delila hozzászólása volt a kulcs, az alapján elkezdtem keresgélni, és egy külföldi fórumon találtam egy hasznos makrót, pont ilyen esetekre. Sikerült szépen lecserélnem az összes képet (és jól gondoltad, régi logót újra
). És igen, azonos helyen voltak a logók. Ha valakinek még szüksége lenne rá, akkor közzé is teszem, lefordítva a használat korlátjait, és a makróban a megjegyzéseket, szövegdobozokat. Egy új fájlba másoltam bele a makrót, amit utána elmentettem, aztán hajrá 
A makró működéséhez azért volt pár feltétel, ami szerencsére nálam adott volt:
- ha a munkalap védett, akkor átugorja, és nem cseréli le a képet
- ha a fájl csak egyetlen képet tartalmaz, akkor
- a régi képet lecseréli az újra, ugyanabban a pozícióban, ahol az elődje volt
- az új képen nem végez semmilyen átméretezést, szóval megfelelő méretűt célszerű választani
- a fálj ugyanazon néven, de másik (LOGONEW) mappába kerül elmentésre; ezt a mappát létre kell hozni abban a könyvtárban, ahol a cserélendő fájlok vannak
- és nyilván a művelet előtt nem árt egy biztonsági mentés
És a makró:
Sub ReBrand()
Dim PCount As Long, I As Long, Candid As Long, myPath As String, myFFile As String
Dim LogSh As Worksheet, LogoPos As String, newLogo As String, NextLogLine As Long
Dim mySk As Long, myRep As Long, myTim As Single
'
newLogo = "D:\logo2.jpg" '<<< Az új logo elérési útja és neve
'
'Figyelmeztető üzenet:
rispo = MsgBox("Add meg a könyvtárat, amelyek fáljaiban ki kell cserélni a logo-t" & vbCrLf _
& "A könyvtárnak tartalmaznia kell egy ÜRES mappát, aminek a neve ""LOGONEW""" _
& vbCrLf & "Nyomd meg az OK-t a folytatáshoz, vagy a Cancelt a folyamat megszakításához.", vbOKCancel)
If rispo <> vbOK Then Exit Sub
'A fájlok elérési útjának megkapása:
With Application.FileDialog(msoFileDialogFolderPicker)
.Show
If .SelectedItems.Count = 0 Then
MsgBox ("Nem történt kiválasztás, a folyamat megszakítva")
Exit Sub
End If
myPath = .SelectedItems.Item(1)
End With
'
'Indítás:
myTim = Timer
Set LogSh = ThisWorkbook.Sheets(1) 'A tevékenységek naplózása a munkalapon
'
myFFile = Dir(myPath & "\*.xls*") 'megkapjuk az első fájl nevét
Application.EnableEvents = False
Do
PCount = 0
If myFFile = "" Then Exit Do 'Lépjen ki, ha nincs fájl
Workbooks.Open myPath & "\" & myFFile
'A fájl nevének naplózása:
NextLogLine = LogSh.Cells(Rows.Count, 1).End(xlUp).Row + 1
LogSh.Cells(NextLogLine, 1) = myFFile
'Számolja meg, hány kép van:
For I = 1 To Worksheets.Count
LogSh.Cells(NextLogLine, 2).Offset(0, I) = Sheets(I).Name
If Sheets(I).Pictures.Count > 0 Then
PCount = PCount + Sheets(I).Pictures.Count
If Sheets(I).ProtectContents Then PCount = 999
'Naplózási infó a munkalapokon:
LogSh.Cells(NextLogLine, 2).Offset(0, I).Value = "*--" & PCount & "--*--" & Sheets(I).Name
Candid = I
End If
If PCount > 1 Then '>1, nem kell szkennelni több munkalapot
Exit For
End If
Next I
If PCount = 1 Then 'Fájl kijelölve a kicserélésre
Worksheets(Candid).Select
If UCase(Left(ActiveSheet.Pictures(1).Name, 7)) = "PICTURE" Then
'ok, kicserélés:
ActiveSheet.Pictures(1).Select
LogoPos = Selection.TopLeftCell.Address
Selection.Delete
Range(LogoPos).Select
ActiveSheet.Pictures.Insert(newLogo).Select
Range("A1").Select
'Napló eredmény:
LogSh.Cells(NextLogLine, 2).Value = ">>>>>: " & LogoPos
myRep = myRep + 1
'Mentés az új mappába:
ActiveWorkbook.SaveAs (myPath & "\LOGONEW\" & myFFile)
Else
'Napló eredmény:
LogSh.Cells(NextLogLine, 2).Value = "SKIPPED--" & PCount
mySk = mySk + 1
End If
Else
'Napló eredmény:
LogSh.Cells(NextLogLine, 2).Value = "SKIPPED--" & PCount
mySk = mySk + 1
End If
Workbooks(myFFile).Close savechanges:=False 'Bezárás
myFFile = Dir 'Következő fájl
Loop
Application.EnableEvents = True
'
'Végső üzenet:
MsgBox ("Szükséges idő (secs): " & Format(Timer - myTim, "0.00") & vbCrLf _
& "Lecserélve: " & myRep & vbCrLf & "Átugorva: " & mySk)
End SubAz eredeti forrás: [link]
Új hozzászólás Aktív témák
- Milyen billentyűzetet vegyek?
- Elemlámpa, zseblámpa
- Objektívek topikja
- Belesajdulhat a nyakunk, ha túl közelről akarjuk nézni a Thermaltake monitorát
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Elektromos autók - motorok
- exHWSW - Értünk mindenhez IS
- Samsung Galaxy A54 - türelemjáték
- Máris elfogytak az idei évre szánt HDD-k a Western Digitalnál
- További aktív témák...
- HP ZBOOK Firefly 16 G10 /i7-1355U/16GB/1 TB SSD/FHD+/IPS/NVIDIA 4 GB Magyar bill
- -75% Dell XPS 13 (9320) i7-1260P 16GB Ram/1TB SSD FHD+ Gari
- GYÖNYÖRŰ iPhone 12 Pro Max 128GB Pacific Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3938
- Telefon felvásárlás!! Huawei P20 Lite/Huawei P20/Huawei P30 Lite/Huawei P30/Huawei P30 Pro
- HP Dell, Fujitsu, üzleti kategóriás notebook kiárusítás - frissítve: 01.03
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

). És igen, azonos helyen voltak a logók. Ha valakinek még szüksége lenne rá, akkor közzé is teszem, lefordítva a használat korlátjait, és a makróban a megjegyzéseket, szövegdobozokat. Egy új fájlba másoltam bele a makrót, amit utána elmentettem, aztán hajrá 
Fferi50
