Hirdetés
-
Előbb csúcstábla aztán topmobil jöhet a OnePlustól
ma Középpontban a Snapdragon elit teljesítménye.
-
Computex 2024: ASRock minden mennyiségben
ph Az Arrow Lake és a Granite Ridge CPU-kra várakozva az ASRock több alaplapot és egy érdekes VGA-t is bemutatott.
-
Akciófigyelő 2024: PlayStation Summer Game Fest leárazások
gp Számos játék szerezhető be az eredeti áránál olcsóbban, érdemes lehet a teljes listát átböngészni.
-
PROHARDVER!
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
-
Fferi50
őstag
Szia!
Valószínűleg azért, mert azok nem valódi dátumok, hanem dátumnak látszó szövegek.
Egy segédoszlopban alakítsd át az értékeket dátummá pl. a következő képlettel:=DÁTUM(JOBB(A1;4);KÖZÉP(A1;4;2);BAL(A1;2))
Ezután ezt az oszlopot alakítsd át értékké (másolás - irányított beillesztés érték), majd erre már rendezhetsz - illetve átmásolhatod az eredeti adatokra.
Üdv. -
Telda
addikt
Sziasztok!
SAP-hoz készítettem egy makrót.
Az lenne a problémám, hogy azoknak a celláknak a tartalmát amik szóközt tartalmaznak, feldarabolja a makró.
Ezt kellene minden megnevezéshez beírni.
MARCHÉ FRESH L2H.125 A4
Helyette viszont szóközönként szétvágva másolja be.
Szerintem aparancs
sorban lévő résszel van valami baj.Sub ujcikk()
Dim ProgramVbs: Set ProgramVbs = CreateObject("WScript.Shell")
fajl = ActiveWorkbook.Name
utVbs = "d:\SAP_MACRO\NEW_NUMBER_HALB.vbs"
maxsor = Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To maxsor
minta = Cells(i, 1).Value
tipus = Cells(i, 2).Value
angol = Cells(i, 3).Value
cseh = Cells(i, 4).Value
nemet = Cells(i, 5).Value
magyar = Cells(i, 6).Value
parancs = """" & utVbs & """ " & minta & " " & tipus & " " & angol & " " & cseh & " " & nemet & " " & magyar
futVbs = ProgramVbs.Run(parancs, , True)
Next i
MsgBox "Keszen vagyunk"
End SubA változók a SAP scriptben vannak deklarálva.
Dim minta
Dim tipus
Dim angol
Dim cseh
Dim nemet
Dim magyar
On Error Resume Next
minta = wscript.arguments(0)
tipus = wscript.arguments(1)
angol = wscript.arguments(2)
cseh = wscript.arguments(3)
nemet = wscript.arguments(4)
magyar = wscript.arguments(5)[ Szerkesztve ]
-
Telda
addikt
válasz Fferi50 #46408 üzenetére
Szia!
Sikerült kiolvasni.
Így néz ki az excel.A parancs tartalma pedig:
""d:\SAP_MACRO\NEW_NUMBER_HALB.vbs" 4200678 E MARCHÉ FRESH L2H.125 A4 MARCHÉ FRESH L2H.125 A4 MARCHÉ FRESH L2H.125 A4 MARCHÉ FRESH L2H.125 A4"
Olyan, mintha nem egész szövegnek venné a cella tartalmát. Hanem szóköznél automatikusan ugrana tovább. -
Fferi50
őstag
Szia!
Úgy gondolom, a script szóközzel választja el a paramétereket egymástól, ezért kerül minden szó új sorba.
A szöveghatároló idézőjeleket is hozzá kell adnod amikor a paramétereket megadod, úgy mint az utVbs-nél.
Kb. így:parancs = """" & utVbs & """ " & minta & " " & tipus & "" """ & angol & """ """ & cseh & """ """ & nemet & """ """ & magyar & """
Üdv.[ Szerkesztve ]
-
spe88
senior tag
A oszlopban számok vannak.
Azt szeretném, hogy a B oszlopban csak azok a számok jelenjenek meg, amik 5-nél nagyobbak.
Gondolom valami tömbképlet lesz a megoldás, de azokban nemigen vagyok otthon.Tudna segíteni valaki? Köszi
Spóroljunk! Kerül, amibe kerül!
-
spe88
senior tag
válasz Fferi50 #46416 üzenetére
Köszi, ez megvan, de így üres cellák maradnak a nem teljesült értékek mellett.
Nekem olyan kell, hogy CSAK azok a számok jelenjenek meg, amik nagyobbak. És egymás alatt, mindenféle üres mező nélkül. Ezért gondoltam, hogy valami tömbképletes dolog kell.Spóroljunk! Kerül, amibe kerül!
-
Fferi50
őstag
Szia!
Próbáld meg ezt a tömbképletet a B1 cellába:=INDEX($A$1:$A$10;KICSI(HA(($A$1:$A$10>5);SOR($A$1:$A$10);"");SOR()))
A tartományokat igazítsd a sajátodhoz.
A KICSI képlet második paraméter akkor SOR(),ha az oszlop első cellájába írod a képletet. Ha lejjebb, akkor ki kell vonni belőle a megelőző sor számát, hogy elsőre 1 legyen az eredmény (pl. a harmadik sor esetén SOR()-2).
Ha elfogytak a számok, akkor hiba lesz az eredmény, ezt elkerülheted, ha a HAHIBA függvénybe ágyazod a képletet és hiba esetére megadod pl. hogy "NICS TÖBB".
Üdv.[ Szerkesztve ]
-
p5quser
tag
Sziasztok!
VBA-ban azt hogyan lehet leírni - minél egyszerűbben - hogy;HA valami = 2 VAGY valami = 3 ÉS valaki neve = juszuf VAGY valaki neve = huan AKKOR
?
Szóval olyasmit szeretnék végeredménynek hogy pl;2, huan = true
3, huan = true
3, juszuf = true
2, juszuf = true
1, juszuf = false
3, otto = false
Remélem érthető (és megoldható VBA-ban) amit szeretnék.
GondolomSelect Case
lesz a barátom, csak lehet hogyjuszuf
éshuan
mellé beugrik mégwong
is, ill. az alkalom is lehet7
a2
és3
mellett.
Ennek függvényében gondolom nagyon elnyúlna aCase
.
Előre is köszönöm! -
Fferi50
őstag
válasz p5quser #46420 üzenetére
Szia!
A Select Case pont azért van, hogy ne kelljen bonyolult és hosszú if szerkezeteket beágyazni.
Nyilván több lehetőség esetén több ága lesz a Case-nek (is).
Az egyes ágakon belül lehet feltételeket vizsgálni, pl.:Select Case szam
Case 2,3
if neve=juszuf or neve=huan (or neve=wong) then
Case Else
End Select
(persze a neveket ne felejtsd el változóba vagy idézőjelbe tenni.... )
Üdv. -
spe88
senior tag
szükséges volna egy olyan makróra, ami A és B munkalap A1 : Y50 tartományát 1-1 PDF-be egy adott helyre lementi (fekvő pozíció, kijelölt tartomány látszik csak a PDF-en) és 1-1 külön outlook üzenetbe csatolmányként beteszi és az 1-1 üzenet automatikusan meg van címezve az adott címekkel és az e-mail szövegtörzse is ki van töltve.
Mennyire bonyolult az ilyen?
Köszönöm
Spóroljunk! Kerül, amibe kerül!
-
spe88
senior tag
ezt néztem én is, amikor rákerestem . Nekem olyan kéne hogy full automatikus, nem kérdez semmit. Ebben sok a messagebox. Pl amikor lementi a pdf fájlt, akkor mindig az aznapi dátumot írja bele a fájlnévbe, így nem lesz olyan hogy felül kell írni stb. Nem kéne tallózni stb.
Ha értenék, hozzá megoldanám. Megpróbálok majd belőle alkotni vmit, de nem hiszem ,hogy sikerrel járok.
Köszi
[ Szerkesztve ]
Spóroljunk! Kerül, amibe kerül!
-
Soulfly842
addikt
Sziasztok!
Van egy nagyobb táblázatom és a telefonszámokat egységes formátumra kellene hoznom.
Ha egy formátumról lenne szó, akkor átformázás egyszerűbb lenne így viszont komplikáltabb:
36701234567
70/1234567
06-70-123-4567
70-123-4567
70-1234567
0670-1234567
6701234567 (értelemszerűen 0670 lenne csak a nulla lecsippentve, automatice átformázta az excel, mert nem telszám különleges formátumban volt)Ezeket mind az alábbi formára kellene hoznom:
06701234567
Ez csak makróval oldható meg (amiben, ha lehet segítséget szeretnék kérni), vagy van rá más megoldás is?
Előre is köszönöm a segítséget!
[ Szerkesztve ]
-
Delila_1
Topikgazda
válasz Soulfly842 #46429 üzenetére
Előbb a csere funkcióval a kötőjelet, majd a per jelet cseréld le "semmire".
Ezután jöhet a képlet.=HA(BAL(A1;2)="36";"0"&JOBB(A1;HOSSZ(A1)-1);HA(BAL(A1;1)="6";"0"&A1;"06"&A1))
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
lappy
őstag
válasz Soulfly842 #46431 üzenetére
HA(BAL(A1;2)="06";"36"&A1)
Az előbb kapott képletbe jó
Vagy a helyette függvény is jó[ Szerkesztve ]
Bámulatos hol tart már a tudomány!
-
spe88
senior tag
' Add the attachment first for correct attachment's name with non English symbols
.Attachments.Add PdfFile
' Set the required account by const Account
Set .SendUsingAccount = OutlApp.Session.Accounts.Item(Account)
Hello!A fenti kód egy részlete annak a makrónak, amivel egy pdf fájlt akarok kreálni egy sheetből és azt elmenteni. A debug a set sorra 440.es hibát dob:
runtime error 440
határétéken kívül tömbindex a probléma oka.Ahogy elnéztem az valamiféle programhiba, annak a programnak, amit meg akar nyitni a makró. Jelen esetben az Outlookot.
Céges környezetben vagyok, a tippek miszerint takarítsam a registryt, töröljem a vírusirtót vagy rakjam újra az Outlookot, nem megoldhatóak. Reménykedem, hogy valami más okoz problémát.
Alapból nem értem, hogy milyen account szükséges a makróhoz? Maga az Outlook-accontom, amiből csak 1 van ebben a környezetben? Vagy miről van itt szó?
Köszi
Spóroljunk! Kerül, amibe kerül!
-
visit
tag
Üdv!
Egy macro futása során ki kell jelölnöm az első 5 sort:
Rows("1:5").Select
ez eddig rendben. Csak nem tudom előre, hogy hány sort kell kijelölnöm, ugyanis azt majd egy változó fogja megmondani, aminek a neve legyen mondjuk: sor
Rows("1:sor").Select viszont syntaxis hibát jelez.
Hogy kell helyesen? -
kkdesign
senior tag
Sziasztok!
Igaz nem excel de talán az wxcel téma állhat a legközelebb ahhoz amit kerdezni szeretnék. Lehet meg a sima office temakor ami nyerő lehet.
Van itt olyan aki PowerBI -ban utazik foglalkozik vele?
Azt szeretném kérdezni, hogy ha egy adott workspace-en sok sok dashboard sokat frissül és emiatt ütközés áll fenn mert sok szálat használna és lehal a frissítés, ezen segítene e ha több workspace-t használnánk és így a 2 workspaceen lefeleződne a terhelés?! Jó e a gondolatmenetem, vagy így nem tortenik terhelés elosztás? -
paolinho
őstag
Egy "DÁTUMTÓLIG" függvény kapcsán szeretnék segítséget kérni.
Az már világos, és flottul működik is, hogy a cellák elhelyezkedésétől függően dátum cellaformátum tartalom mellett a pl. =DÁTUMTÓLIG(C2;D2;"d") függvényt megadva a kijelölt cellában megjelenik a dátumok között eltelt napok száma. Azonban én ezt egy olyan Excel táblában alkalmaznám, amely egy Word Körlevéllel áll kapcsolatban, amelyben mind a dátumok, mind az eredményül kapott köztük eltelt napok számát meg kellene jelenítenem.
A probléma az, hogy a Cellák formázása alatt bármilyen dátum tipust választok ki, a dokumentumban a dátum helyén egy 44136-os szám jelenik meg. Ez csak akkor lesz helyesen megjelenítve, ha szintén a Cellák Formázása alatt a Kategóriát Általános-ra váltom. Ebben azt esetben azonban nyilván nem tudja számolni a dátumok között eltelt napokat.Szerintetek erre van valamilyen megoldás? Vagy mi lehet a hiba oka?
Előre is köszi a segítséget!
-
Fferi50
őstag
válasz paolinho #46440 üzenetére
Szia!
A Wordben a mező beszúrásánál @ paraméterrel megadhatod a megjelenés módját, függetlenül attól, hogy az Excelben milyen a cellaformátum - de az adatnak az Excelben dátum formátumnak kell lennie. Pl.
{MERGEFIELD Dátum1 \@"yyyy.MM.dd" \* MERGEFORMAT}
az éééé.hh.nn formátumban jeleníti meg a körlevélben a dátumot.
A beszúrt mezőn jobb egérgombbal kattintva a Mezőkód váltást kiválasztva szerkesztheted a mező formátumot is.
Üdv.[ Szerkesztve ]
-
-
félisten
válasz paolinho #46442 üzenetére
Ennek már nekifutottunk egyszer, pont Veled.
Nem jött össze (mármint Neked), pedig kellett volna, akkor sikerült "kerülőmegoldással" operálni, de a mostani esetben ez már nem fog menni (muszáj lesz, hogy működjön a Mergefield-es játék)...Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
paolinho
őstag
válasz Fire/SOUL/CD #46443 üzenetére
Basszus, igaz! Ezt hogy elfelejtettem. Bocs!
Na ezek után szégyen lenne, ha nem tudnék összetákolni valamit. -
-
Pakliman
tag
Igen, arra rájöttem, hogy el is akarod küldeni, csak a PDF készítésnek és a küldésnek nincs köze egymáshoz.
Mondjuk úgy, hogy kicsit kötözködtem VeledÉn céges gépen vagyok, automatikusan küldök ki címekre automatikusan generált pdf fájlokat, de ilyen hibával nem találkoztam.
Tény, hogy nálam nincs a kódbanAccount
-ot kérő sor.
Ha érdekel, én egy ilyen eljárást hoztam össze:Public Sub SendEmail( _
xTo As String, _
xSubject As String, _
Optional xCC As String = "", _
Optional xBCC As String = "", _
Optional xBody As String = "", _
Optional xHTMLBody As Variant = "", _
Optional bSend As Boolean = False, _
Optional bTörölniKüldésUtán As Boolean = False, _
Optional vFiles As Variant = Empty _
)
Const olFolderSentMail As Long = 5
Const olByValue As Long = 1
Dim OutApp As Object
Dim OutMail As Object
Dim oFolder As Object
Dim oEditor As Object
Dim cFile As Long
Dim sBody As String
If (xTo <> "") And (xSubject <> "") Then
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.To = xTo
.cc = xCC
.BCC = xBCC
.Subject = xSubject
If TypeName(xHTMLBody) = "Range" Then
xHTMLBody.Copy
Set oEditor = .GetInspector.WordEditor
oEditor.Content.Paste
Else
sBody = IIf(xHTMLBody = "", xBody, xHTMLBody): If sBody = "" Then sBody = " "
.HTMLBody = sBody
End If
If IsArray(vFiles) Then
For cFile = LBound(vFiles) To UBound(vFiles)
If Dir(vFiles(cFile)) <> "" Then .Attachments.Add (vFiles(cFile)) 'Source:=vFiles(cFile), Type:=olByValue
Next cFile
Else
If Dir(vFiles) <> "" Then .Attachments.Add (vFiles) 'Source:=vFiles, Type:=olByValue
End If
If bSend Then
.DeleteAfterSubmit = bTörölniKüldésUtán
.Send
Else
.Display
End If
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
End If
End Sub -
spe88
senior tag
válasz Pakliman #46446 üzenetére
az enyém ilyen, de nem értem ott mi a baj. Igaz nem is értek hozzá túlzottan
Sub SendPDF_WithAccountSignatiure()
' --> User settings, change to suit
Const IsDisplay As Boolean = True ' Change to False for .Send instead of .Display
Const IsSilent As Boolean = False ' Change to True to show Send status
Const FontName = "Arial" ' Font name of the email body
Const FontSize = 11 ' Font size of the email body
Const Account = 2 ' Index or Name of the account to send from
' <-- End of the settings
Dim IsCreated As Boolean
Dim OutlApp As Object
Dim char As Variant
Dim PdfFile As String, HtmlFont As String, HtmlBody As String, HtmlSignature As String
' Edit the body's html text as required
' The tags are: h3 is for Header#3; b is for Bold; br is for line break
' HTML tag's are not displayed properly in the post of MrExcel forum, thus replacing is used to fix this problem
HtmlBody = "Hello, (br)" _
& ".(br)" _
& "Proba."
HtmlBody = Replace(HtmlBody, "(", "<")
HtmlBody = Replace(HtmlBody, ")", ">")
' Set the font for the html-body (parentheses are just because of MrExcel posting limitation)
HtmlFont = HtmlFont = "(body font: " & 11 & "pt " & Arial & ";color:black"")"
HtmlFont = Replace(HtmlFont, "(", "<")
HtmlFont = Replace(HtmlFont, ")", ">")
' Define PDF filename
PdfFile = Range("'Report MOS'!L1")
' Replace illegal symbols in PdfFile by underscore
For Each char In Split("? "" / \ < > * | :")
PdfFile = Replace(PdfFile, char, "_")
Next
' Apply %TEMP% path to the file name and limit lenght of the pathname
PdfFile = Environ("F:\03_PROJEKTE\02_BOS\2.4 SERIENBETREUUNG") & PdfFile & ".pdf"
' Try to delete PDF file if present
If Len(Dir(PdfFile)) Then Kill PdfFile
' Export the activesheet as PDF
With Worksheets("Report MOS")
.ExportAsFixedFormat Type:=xlTypePDF, Filename:=PdfFile, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
End With
' Use the already open Outlook if possible
On Error Resume Next
Set OutlApp = GetObject(, "Outlook.Application")
If Err Then
Set OutlApp = CreateObject("Outlook.Application")
IsCreated = True
End If
OutlApp.Visible = True
On Error GoTo 0
' Prepare email with PDF attachment and the default signature
With OutlApp.CreateItem(0)
' Set HTML format
.BodyFormat = 2
' Add the attachment first for correct attachment's name with non English symbols
.Attachments.Add PdfFile
' Set the required account by const Account
Set .SendUsingAccount = OutlApp.Session.Accounts.Item(Account)
' Get default email signature without blinking (instead of .Display method)
With .GetInspector: End With
HtmlSignature = .HtmlBody
' Prepare e-mail
.Subject = Range("'Report MOS'!L1")
.To = Range("'Report MOS'!L2") ' <-- Put email of the recipient here
.HtmlBody = HtmlFont & HtmlBody & HtmlSignature
' Try to send or just display the e-mail
On Error Resume Next
If IsDisplay Then .Display Else .Send
' Show error of the .Send method
If Not IsDisplay Then
' Return focus to Excel's window
Application.Visible = True
' Show error/success message
If Err Then
MsgBox "E-mail was not sent for some reasons" & vbLf & "Please check it", vbExclamation
.Display
Else
If Not IsSilent Then
MsgBox "E-mail successfully sent", vbInformation
End If
End If
End If
On Error GoTo 0
End With
' Try to quit Outlook if it was not previously open
If IsCreated Then OutlApp.Quit
' Try to release the memory of object variable
Set OutlApp = Nothing
End Sub
[ Szerkesztve ]
Spóroljunk! Kerül, amibe kerül!
-
Pakliman
tag
Ebben a sorban
Set .SendUsingAccount = OutlApp.Session.Accounts.Item(Account)
azAccount
-nak egy számnak kell lennie (fentebb deklarálva van konstansként 2-nek).
Szerintem azért fut hibára Neked, mert a 2 az túl nagy szám neki, nincs a rendszerben olyan sorszámúAccount
.
Ha megint megáll hibával azon a ponton, akkor írd be az "Immediate" ablakba:? OutlApp.Session.Accounts.Count
Ha 2-nél kisebb számot ad eredménynek, akkor megvan a hiba.[ Szerkesztve ]
-
Darko_addict
őstag
Sziasztok!
Megoldást kerestem egy problémára és leírás alapján az XKERES függvény volt a legkézenfekvőbb. Megcsináltam a függvényt ( =XKERES(J47;'Saját termelés'!I2:AN2;XKERES(Előrejelzések!F50;'Saját termelés'!A3:A42;'Saját termelés'!I2:AN42)) ), azonban az irodában nem az Excel365 fut, így Hibás lett minden mező...
Alternatívaként olvastam az Index Match függvényekről, de nem használtam még soha és példák szerint szerintem másképp működik, mint ahogy hasznosnak látom.
A függvénynek az a lényege, hogy először az itt - [kép] -, a felső sorban látható dátumot keresi a másik táblázatban, majd az alatta lévő termékmegnevezést a másikban és visszaadja az értékét, ami a másik táblázatban adott terméknév és dátum kereszteződésénél található.(J47 dátum, amit keres,
Saját termelés!I2:AN2 - másik táblázat dátum sora, hó első napjától az utolsóig, előre beírva,
Előrejelzések!F50, termék neve, amit keres
Saját termelés!A3:A42 - másik táblázatban a termékek nevei, amik között keresnie kell
Saját termelés!I2:AN42 - ahonnan (a dátum és a termék nevében kereszteződéséből) az értéket vissza kell adja.)Tudtok javasolni alternatívát XKERES-re, ami nem túl bonyi? Sajnos kevés idő jut ezt szerkeszteni, szeretnék céltudatosan újra nekiállni.
Köszi szépen!
[ Szerkesztve ]
Don't give up your dreams. Keep sleeping.
Új hozzászólás Aktív témák
- Windows, Office licencek a legolcsóbban, egyenesen a Microsoft-tól - 2990 Ft-tól!
- Game Pass Ultimate előfizetések 1 - 25 hónapig azonnali kézbesítéssel a LEGOLCSÓBBAN!
- Adobe Creative Cloud - 2024. 04. 05 - 2025. 04. 05-ig
- Játékkulcsok olcsón: Steam, Uplay, GoG, Origin, Xbox, PS stb.
- Számlás!Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Alpha Laptopszerviz Kft.
Város: Pécs