-
Fototrend
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
-
Ala
tag
Közben kicsit játszottam a Copilottal. (Nyugodtan törjetek pálcát felettem, még nem értek a progamozáshoz, de valamennyire képes vagyok értelmezni a kódokat, ezért is vettem elő újra. Nem mellesleg pedig azért tettem fel itt a kérdésemet, mert anno 2018-ban egy hihetetlen segítőkész topikot találtam itt, aminek köszönhetően hihetetlen sokat tudtam fejlődni, ezért utólag is hálás köszönet.)
Szóval a paraméterek:
emailcímek: E12:E36 tartományban, cellánként egy email cím, lesznek üres cellák, de mindenéppen lesz legalább egy cella, ami emailcímet tartalmaz.
Megosztási jogosultság: olvasó
Megosztási határidő: 2024.11.10. 13:59
Üzenet: "Tisztelt Cím! Ezúton érteítem, hogy Önnel 2024.11.10-ig ez a mappa olvasási jogosultsággal megosztásra kerül. Kérem az adatokat ezen határidő előtt dolgozza fel és és a feldolgozás eredményét küldje el nekem. Tisztelette: Nagy Attila - vezető"
A mappának csak az azonosítóját kellett megadni a scriptben (ezt a link tartalmazza)
Ami probléma, hogy tartományon kívüli email címekkel dolgozok, ezért figyelmeztető üzenet jön, ha kézzel csinálom a megosztást, a szkripttel pedig mindent hibának észlel, de a megosztás megtörténik. (ez azért zavaró, mert ha tényleg véletlenül hibás az email cím, akkor a logból nem látszik egyértelűen.A jelenlegi kód:
function shareFolder() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var emailRange = sheet.getRange('E12:E36');
var emails = emailRange.getValues().flat().filter(String); // Szűrjük ki az üres cellákat
var folder = DriveApp.getFolderById('1tbe-QzEgt4K5AAzWgb0B_LE9W0bdmNiQ'); // Mappa ID
var expirationDate = new Date('2024-11-10T13:59:00Z');
var message = "Tisztelt Cím!\n\nEzúton érteítem, hogy Önnel 2024.11.10-ig ez a mappa olvasási jogosultsággal megosztásra kerül. Kérem az adatokat ezen határidő előtt dolgozza fel és és a feldolgozás eredményét küldje el nekem.\n\nTisztelette:\nNagy Attila - vezető";
var errorEmails = [];
emails.forEach(function(email, index) {
try {
var user = folder.addViewer(email);
user.setExpirationDate(expirationDate);
MailApp.sendEmail(email, 'Mappa megosztás', message);
} catch (e) {
errorEmails.push(email);
sheet.getRange('F' + (12 + index)).setValue(email); // Hibás email címek írása az F oszlopba
Logger.log('Hiba történt a megosztás során: ' + e.message);
}
});
if (errorEmails.length > 0) {
MailApp.sendEmail(Session.getActiveUser().getEmail(), 'Megosztási hiba', 'A következő email címekkel nem sikerült megosztani a mappát: ' + errorEmails.join(', '));
}
}A mappa nevét szerkesztettem, így nem arra mútat, reményeim szerint fiktív.
Ha valakinek ezzel kapscolatban van jó ötlete és lehetne módosítani a kdon, szívesen olvasom, vagy ha csak használhatóbbá tenné, azt is. Ezen felül pedig örülök, ha valakinek ezzel segítek. -
Fferi50
Topikgazda
Szia!
Ha az elrejtés-felfedés alatt azt érted, amit jelent - a sorok magasságának 0-ra és normálra állítását -, akkor az feltételes formázással nem lehetséges, ahhoz makró kell.
Az adott cella értékének vizsgálatához kötve átállíthatod a betűszínt, kitöltőszínt stb. ezzel "eltüntetheted" a cellában látható szöveget.Üdv.
-
Delila_1
veterán
A dátumot a SZÖVEG függvény segítségével formázhatod az összefűzésben.
Az egyéb formázásokat csak úgy tudod végrehajtani, ha az összefűzés eredményét értékként beilleszted saját magára.
A 32473-as hozzászólásoktól láthatsz példákat makrós formázásokra, de rákereshetsz az ActiveCell.Characters kifejezésre is.
-
Delila_1
veterán
Jó helyen változtattál, csak nem <50, hanem <51. Akkor az 50-et is figyelembe veszi.
Egy picit gyorsítottam a makrón.
Sub Masolas()
Dim hova As Integer, oszlop As Integer
ActiveSheet.Protect UserInterfaceOnly:=True
If Range("B4") > 0 And Range("B4") < 51 Then
hova = Application.Match(Range("B4"), Range("B15:B94"), 0) + 14
Range("C4:D5").Copy
Range("C" & hova).PasteSpecial xlPasteValues
For oszlop = 5 To 15
Cells(hova, oszlop) = Cells(4, oszlop).Value
Next
Application.CutCopyMode = False
Else: MsgBox "Hibás sorszám", vbCritical
End If
End Sub -
Delila_1
veterán
Egy modulba helyezett makró minden indításakor megkeresi a B4 cellában lévő sorszámot a B15:B94 tartományban, és ide másolja a pirossal keretezett fenti részt.
Sub Masolas()
Dim hova As Integer, oszlop As Integer
If Range("B4") > 0 And Range("B4") < 41 Then
hova = Application.Match(Range("B4"), Range("B15:B94"), 0) + 14
For oszlop = 3 To 15
Cells(hova, oszlop) = Cells(4, oszlop)
Next
For oszlop = 3 To 4
Cells(hova + 1, oszlop) = Cells(5, oszlop)
Next
Else: MsgBox "Hibás sorszám", vbCritical
End If
End SubKitehetsz a lapra egy gombot, vagy egy alakzatot, és hozzárendeled a makrót.
A modulba helyezésről a Téma összefoglalóban olvashatsz. -
ny.janos
tag
Az autokitöltés során ne a bal egérgombot használd, hanem a jobb gombbal húzd addig, amíg másolni szeretnél, a felugró gyorsmenüben pedig válaszd a "Kitöltés a formátum nélkül" opciót.

Vagy autokitöltés helyett Ctrl+C, területet kijelölöd ahova másolni szeretnél, irányított beillesztés, képletek.
-
ny.janos
tag
Szia!
Ismereteim szerint a feltételes formázással úgy nem fogsz boldogulni (vagy legalábbis tuti hibalehetőséget hordoz magában), ha az közzétett képen látható módon a celláid egyesítve vannak. A cellaegyesítéseket szüntesd meg, mielőtt a feltételes formázást alkalmazod.
Ha vannak olyan soraid, ahol Z oszlopban nincs adat, AJ-ben viszont igen, úgy azokat az üres cellákat is a megadott formátumúra fogja formázni a Mutt által írt megoldás (Az üres cella is eltér egy nem ürestől.)
Ha az üres cellát nem szeretnéd formázni, akkor 2 feltételes formázást adj meg ugyanarra a cellára,
- az első legyen az=ÜRES($Z2), melyhez ne adj meg semmilyen formázást,
- a második pedig a Mutt által írt képlet.A feltételes formázás képletét egy lépésben is megadhatod, ha a Z oszlop kívánt tartományát kijelölöd, majd úgy rögzíted a képletet.
Delila_1: A formátumfestő ecsetet a feltételes formázásra nem szeretem alkalmazni, mert nem a meglévő formázás érvényességi tartományát módosítja, hanem új feltételes formázást hoz létre. Sok formátummásolás esetén ugyanaz a feltételes formázás (különböző tartományokkal) akár több 10-szer is előfordul. Ha módosítani kell rajta később, vagy törölni azt, akkor mindegyik tartományra vonatkozót módosítani / törölni kell. Nem egyszer mérgelődtem amiatt, mert egy munkalap 7-8 feltételes formázásából lett úgy 100-150.

-
Delila_1
veterán
A feltételes formázásnál a kezdő egyenlőség jelet úgy kell értelmezni, mintha HA lenne oda írva. Mutt képlete ennek a tükrében azt jelenti, hogy ha a $Z2 cella értéke nem azonos az $Aj2 cella értékével, akkor színezzen.
Másolni könnyedén tudsz a formátumfestő ecsettel. Ráállsz a másolandó formátumú cellára, a Kezdőlap menüben balról a 2., alsó ikonon klikk, a kapott ecset formájú kurzort végig húzod a területen, ahova másolni akarod a formátumot.
-
Mutt
senior tag
Szia,
Ha az első sorod fejléc, akkor a Z2-es cellára álljál rá.
Feltételes formázás -> Új szabály -> A formázandó cellák kijelölése képlettel opciót válaszd.A képleted pedig ennyi:
=$Z2<>$AJ2Ezek után kiválasztod a kedvenc formátumodat és leokézol mindent.
Ez a szabály még csak a kettes sorra van beállítva, engedélyezzük a többi sorra is.
Még mindig Z2-ben állva Feltételes formázás -> Szabályok kezelése opcióban a szabály érvényessége
$Z$2-ről legyen kibővítve annyi sorra amire szükséged lehet/van pl. =$Z$2:$Z$100000üdv
Új hozzászólás Aktív témák
- Ilyen olcsó sem volt még egy Apple notebook
- Parfüm topik
- MasterDeeJay: Mi ez a pici videókártya? AMD E9173 teszt
- Okos Otthon / Smart Home
- Spórolós topik
- GoodSpeed: Mutasd magad topic!
- Azonnali informatikai kérdések órája
- Intelligencs: Karrierváltás - Első rész
- Nintendo Switch 2
- PlayStation 5
- További aktív témák...
- Számlás!Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
- Microsoft és egyéb dobozos retro szoftverek
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Adobe Előfizetések - Adobe Creative Cloud All Apps - 12 Hónap - 15% AKCIÓ
- The Elder Scrolls Online Imperial Collector s Edition
- Lenovo ThinkPad L460,HD+, 14",i5-6200U,8GB RAM,256GB SSD,WIN11
- Lenovo ThinkPad T480s,14",FHD,i5-7300U,8GB DDR4,256GB SSD,WIN11,TOUCH
- Xiaomi Mi 10T Pro 256GB, Kártyafüggetlen, 1 Év Garanciával
- Intel Core i5-9500 / i7-8700T / i7-8700 / i7-9700 /i5-10500T processzorok- számla, garancia
- DOKKOLÓ BAZÁR! Lenovo, HP, DELL és egyéb más dokkolók (TELJES SZETTEK)
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest



Fferi50