Új hozzászólás Aktív témák
-
prodrakan
csendes újonc
Sziasztok!
Kellene egy kis segítség Excel makróban
Nagyon kezdő szinten vagyok
Van egy kész működő függvényem,amivel jelenleg használom a táblázatomat,de jobban szeretném ezt makróval futtatni,mivel jelenleg minden egyes megnyitáskor a legelejétől lefuttatja pedig nekem csak az első üres sortól kellene.
A függvényem az alábbi:
=INDEX('\\Hubudr99102dat\mf\MF3\FEMSZERK_TERMELES\Fémszerkezet\2015.08.01_Komponens_és_szekrény_gyártás\Tervező\2017\[Tervező_2017.xlsm]Planner'!$I$4:$I$5000;HOL.VAN(A4;'\\Hubudr99102dat\mf\MF3\FEMSZERK_TERMELES\Fémszerkezet\2015.08.01_Komponens_és_szekrény_gyártás\Tervező\2017\[Tervező_2017.xlsm]Planner'!$A$4:$A$5000;0))A fenti függvénybe egy hiba van,hogy ha nincs adat a cellában akkor "01.00" ír a cellába,pedig akkor jobb lenne,ha üresbe hagyná.
Azt szeretném,ha megkeresné az első olyan cellát a 'K'-oszlopba,ami üres és ugyan abba a sorba az 'A'-oszlopba is van adat és innentől futtatná le a függvényemet.Segítségeteket előre is köszönöm!
-
Bazs87
tag
válasz
szatocs1981 #2898 üzenetére
a szöveges fájlnak mindegy mi a kiterjesztése, csak a meghíváskor azt írd be.
ha előtte valamit manipulálsz benne:
Új sor : text + vbNewLine
ha nem szeretnél új sort értelemszerűen nem írod bele.ha csak megnyitod írásra: write/writeline
2 Script 2 külön fájlba ír? egyik csv másik txt? Ha nem akkor a szinkronizáció gondot okozhat.
A szöveges fájl meghívása...
[link] 24. oldalha kérdésed van állok rendelkezésedre
-
szatocs1981
aktív tag
Sziasztok,
2db VBScript-tel szeretnék egy csv-t vagy egy txt filet feltölteni.
Az elsö VBScriptnek mindig egy új sorba kell írni a cuccost, a második Scriptnek mindig az utolsó sor végére.Hogyan tudom ezt megoldani?
Elöre is köszönöm a segitseget
-
Cancer
senior tag
Sziasztok,
Nem tudom, hogy jó helyre írok-e, de WPS Office topicot nem találtam.
Volna egy Huawei M2.10-es laptopom, amin van WPS Office. Rajta Calc (excel). Az lenne a kérdésem, hogy lehet-e valamilyen formában VisualBasic-et kapcsolni ehhez?Igazából Az jó lenne, ha lehetne, mert megspórolna a dolog egy laptop vásárlást.
-
-
BullZeye
veterán
Ömm, nem hiszem, vagyis nem tudom, nem nagyon értek hozzá, jelenleg a script 1 kattintással amin épp van kijelölés szerkeszti és átnevezi a fájl/mappa nevét. Én csak tovább szeretném automatizálni, hogy a kész fájlt/mappát áthelyezze "f:\Filmek" mappába, hogy Kodi kezelhesse magának. Gondolom VBSnél is van getpath jellegű dolog, hogy tudja mi lett az új elérés, és ezt a mappát helyezze át a statikus "F:\Filmek" mappába.
-
BullZeye
veterán
Köszi, ezt már próbáltam, sajnos erre a sorra azt írja:
Érvénytelen eljáráshívás vagy argumentum: 800A0005
set folder = fs.GetFolder(path)Ezzel az argumentummal indul amúgy a script az átnevezés miatt:
%F (\w*\d{0,3})\.(\d{4}).*
Fentiekkel kiegészített script:
Set objRegExp = CreateObject("VBScript.RegExp")
Set WshArg = WScript.Arguments
Set FSO = CreateObject("Scripting.FileSystemObject")
set fs = CreateObject("Scripting.FileSystemObject")
set folder = fs.GetFolder(path)
file_name=""
new_file_name=""
flag=False
objRegExp.Pattern=WshArg.Item(1)
If WshArg.Count>1 Then
If FSO.FileExists(WshArg.Item(0)) Then
Set File = FSO.GetFile(WshArg.Item(0))
set TextStream = File.OpenAsTextStream(1)
While Not TextStream.AtEndOfStream
is_File=False
file_name=TextStream.ReadLine()
If FSO.FileExists(file_name) Then
is_File=True
End If
If is_File Then
Set File = FSO.GetFile(file_name)
Else
Set File = FSO.GetFolder(file_name)
End If
new_file_name=replace(objRegExp.Replace(FSO.GetBaseName(file_name), "$1 ($2)"),"."," ")
If is_File Then
new_file_name=new_file_name+"."+FSO.GetExtensionName(file_name)
End If
if is_File and not FSO.FileExists(new_file_name) Then
flag=True
ElseIf not is_File and not FSO.FolderExists(new_file_name) Then
flag=True
End If
if flag Then
File.Name=new_file_name
Else
msgbox "File/Folder " & new_file_name & " already exist. Can't rename ..."
End If
Wend
End If
End If
folder.Move "F:\Filmek\"Próbáltam most ide-oda rakosgatni vagy beleépíteni a getfolder-t oda ahol már van egy getfile vagy getfolder, de ezzel sem működik, itt a
Set Folder = FSO.GetFile(path)
nem tetszik neki:Set objRegExp = CreateObject("VBScript.RegExp")
Set WshArg = WScript.Arguments
Set FSO = CreateObject("Scripting.FileSystemObject")
file_name=""
new_file_name=""
flag=False
objRegExp.Pattern=WshArg.Item(1)
If WshArg.Count>1 Then
If FSO.FileExists(WshArg.Item(0)) Then
Set File = FSO.GetFile(WshArg.Item(0))
set TextStream = File.OpenAsTextStream(1)
While Not TextStream.AtEndOfStream
is_File=False
file_name=TextStream.ReadLine()
If FSO.FileExists(file_name) Then
is_File=True
End If
If is_File Then
Set File = FSO.GetFile(file_name)
Set Folder = FSO.GetFile(path)
Else
Set File = FSO.GetFolder(file_name)
Set Folder = FSO.GetFolder(path)
End If
new_file_name=replace(objRegExp.Replace(FSO.GetBaseName(file_name), "$1 ($2)"),"."," ")
If is_File Then
new_file_name=new_file_name+"."+FSO.GetExtensionName(file_name)
End If
if is_File and not FSO.FileExists(new_file_name) Then
flag=True
ElseIf not is_File and not FSO.FolderExists(new_file_name) Then
flag=True
End If
if flag Then
File.Name=new_file_name
Else
msgbox "File/Folder " & new_file_name & " already exist. Can't rename ..."
End If
Wend
End If
End If
folder.Move "F:\Filmek\" -
BullZeye
veterán
Van egy scriptem, amit total commanderből meghívok egy gombbal, és átnevezi a kijelölt film mappákat Kodi számára emészthetőbb formába. Mit és hova kellene még beszúrnom, hogy rögtön át is helyezze az "f:\!Film\" mappába az átnevezett mappákat?
Itt a script jelenleg:
Set objRegExp = CreateObject("VBScript.RegExp")
Set WshArg = WScript.Arguments
Set FSO = CreateObject("Scripting.FileSystemObject")
file_name=""
new_file_name=""
flag=False
objRegExp.Pattern=WshArg.Item(1)
If WshArg.Count>1 Then
If FSO.FileExists(WshArg.Item(0)) Then
Set File = FSO.GetFile(WshArg.Item(0))
set TextStream = File.OpenAsTextStream(1)
While Not TextStream.AtEndOfStream
is_File=False
file_name=TextStream.ReadLine()
If FSO.FileExists(file_name) Then
is_File=True
End If
If is_File Then
Set File = FSO.GetFile(file_name)
Else
Set File = FSO.GetFolder(file_name)
End If
new_file_name=replace(objRegExp.Replace(FSO.GetBaseName(file_name), "$1 ($2)"),"."," ")
If is_File Then
new_file_name=new_file_name+"."+FSO.GetExtensionName(file_name)
End If
if is_File and not FSO.FileExists(new_file_name) Then
flag=True
ElseIf not is_File and not FSO.FolderExists(new_file_name) Then
flag=True
End If
if flag Then
File.Name=new_file_name
Else
msgbox "File/Folder " & new_file_name & " already exist. Can't rename ..."
End If
Wend
End If
End If -
alfa20
senior tag
nézd meg ezt:
Sub main()
Application.ScreenUpdating = False
Dim usorKesz, alapSor As Long
usorKesz = Sheets("Kész").Range("A" & Rows.Count).End(xlUp).Row
alapSor = 1
Sheets("Alap").Select
Do While (Cells(1, 1) <> "")
Cells(1, 1).Copy
Sheets("Összefűz").Range("A2").PasteSpecial
Sheets("Kész").Cells(usorKesz + alapSor, 1) = Sheets("Összefűz").Range("A1") & _
Sheets("Összefűz").Range("A2") & Sheets("Összefűz").Range("A3")
alapSor = alapSor + 1
Sheets("Alap").Cells(1, 1).Delete
Loop
Sheets("Kiegészít").Range("A1:A16").Copy
Sheets("Kész").Range("A" & usorKesz + alapSor).PasteSpecial
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub -
xml2
újonc
Nagyon köszönöm a segítséget, pont erre gondoltam!
Ha másolás helyett inkább kivágást szeretnék, akkor a Copy helyett mehet mindenhova Cut, ugye?
A tartalomban nem szerettem volna szóközt, úgyhogy kivettem a megjegyzést.Szerk: Közben lázasan kerestem a hibát a saját művemben, jelzem, megtaláltam
Félreértettelek, és az egyes tartalmak között nem szerettem volna szünetet, gondolom így értetted, hogy a cellák között. Tehát mégse kell az a sor
-
alfa20
senior tag
Szia!
Én így oldanám meg, viszont a Do While-ban lévő első két sort én elhagynám, az ha nincs miértje, szerintem felesleges. Illetve a "3 cellát összefűzni (szóköz nélkül)" arra utalt, hogy a cellák közt ne legyen szünet vagy a tartalmukban?
Ha a tartalmukban, akkor vedd ki a kommentet a ' szóköz eltávolítása:Sub main()
Application.ScreenUpdating = False
Dim usorKesz, alapSor As Long
usorKesz = Sheets("Kész").Range("A" & Rows.Count).End(xlUp).Row
alapSor = 1
Sheets("Alap").Select
Do While (Cells(alapSor, 1) <> "")
Cells(alapSor, 1).Copy
Sheets("Összefűz").Range("A2").PasteSpecial
Sheets("Kész").Cells(usorKesz + alapSor, 1) = Sheets("Összefűz").Range("A1") & _
Sheets("Összefűz").Range("A2") & Sheets("Összefűz").Range("A3")
' szóköz eltávolítása:
'Sheets("Kész").Cells(usorKesz + alapSor, 1).Replace What:=" ", Replacement:=""
alapSor = alapSor + 1
Loop
Sheets("Kiegészít").Range("A1:A16").Copy
Sheets("Kész").Range("A" & usorKesz + alapSor).PasteSpecial
Application.ScreenUpdating = True
End Suberre gondoltál?
-
xml2
újonc
Sziasztok!
Excel makró témában szeretnék segítséget kérni.Van 4db munkalapom: Alap, Összefűz, Kiegészít, Kész
Minden cella szöveget tartalmaz.
Az Alap munkalapon csak az A oszlopban vannak adatok.
Az Összefűz lapon az A1 és az A3 cella foglalt (fix), az A2-be (változó) kellene másolni az Alap lapról a tartalmat, cellánként.
Beillesztés után a 3 cellát összefűzni (szóköz nélkül) egy új cellába, majd ezt az új tartalmat továbbküldeni a Kész munkalap A oszlopába, az első üres cellába.
Mindezt addig kellene csinálni (az Összefűz lap A2 celláját felülírva az új tartalommal), ameddig az Alap munkalap A oszlopában üres cellához nem ér.
Ha ez megtörtént, a Kiegészít munkalap A1-A16 cellákat kellene bemásolni a Kész munkalap következő, A oszlopban lévő, üres celláiba.Nagyon szépen köszönöm, ha valaki lesz olyan kedves, és szán rá egy kis időt, energiát, hogy kisegítsen!
Szerk: fontos lehet, Office 2010 Prof. Plus, amivel rendelkezem.
-
Vladek83
tag
+ (#2880) Ispy köszönöm a javaslatokat! VB.net lenne. Most ismerkedem vele, eddig excelben próbálgattam írogatni..küzdök..
úgy tűnik ezzel jó lehet:Try
Dim search As String = "%" + TextBox1.Text + "%"
Me.TörzsTableAdapter.FillByKereses(Me.TörzsDataSet.Törzs, search, search, search)
Dim imageName As String = DataGridView1.CurrentRow.Cells(3).Value.ToString()
Dim img As Image
img = Image.FromFile(Convert.ToString("D:\Images\") & imageName)
PictureBox1.Image = img
Catch ex As Exception
End Try -
DasBoot
aktív tag
Szép napot! Nagyon, nagyon kezdő vagyok a Visual Basic-ben, de egy konkrét feladatot szeretnék megoldani, ezen keresztül szeretnék ismerkedni vele. 6-os LOTTO-n szeretnék tippelni mégpedig úgy, hogy a mezőkön sohase ismétlődjenek a számok. A 45 számhoz 7 teljes mező kell + 1 a maradék 3 számnak, de nem ez a lényeg, mert újabb 45 is lehetne. Ezt MSExcel-ben el tudtam készíteni, nagyon jól működik, de Visual Basic-ben is szeretném. VB6-os programmal rendelkezem. Köszönöm a válaszokat. Üdv.: Joe
-
Bazs87
tag
válasz
Vladek83 #2878 üzenetére
a probléma megkerülése nem segít esetleg?
amíg az egyik fut deaktiválod a másik kódrészletet így keresztreteszelést létrehozva. Netán az textbox objektet "disable"-re állítod, ha van ilyen funkciója, miután pedig lefutott a kép manipuláció újra enabled. Tudom nem szép megoldás, de sajnos jobb ötletem nincs. VB6-ban dolgozol?
-
Vladek83
tag
Sziasztok!
Egy kicsit elakadtam, tudna valaki súgni?
Van egy TextBox amibe írok, akkor csak azokat az értékeket jeleníti meg, viszont hibára fut, mert közben egy PictureBox-ban kellene megjeleníteni külön a hozzá tartozó képet..
Együtt nem akar működni a kettő..Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'TODO: This line of code loads data into the 'Adatbázis1DataSet.Cikkek' table. You can move, or remove it, as needed.
Me.CikkekTableAdapter.Fill(Me.Adatbázis1DataSet.Cikkek)
End Sub
Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
Dim search As String = "%" + TextBox1.Text + "%"
Me.CikkekTableAdapter.FillBySearchCikkek(Me.Adatbázis1DataSet.Cikkek, search, search)
End Sub
Private Sub DataGridView1_SelectionChanged(sender As Object, e As EventArgs) Handles DataGridView1.SelectionChanged
Dim imageName As String = DataGridView1.CurrentRow.Cells(3).Value.ToString()
Dim img As Image
img = Image.FromFile(Convert.ToString("D:\Images\") & imageName)
PictureBox1.Image = img
End Sub
End Class -
Bazs87
tag
Sziasztok!
LibreOffice Calc-ot szeretnék vbs-ből manipulálni. Minden fut gond és működik, egyetlen problémám a sheet kiválasztása. Próbáltam több különböző parancsot (index szerint, megnevezés szerint), de sajnos egyik sem működik. Először meg kell nyitnom a fájlt, aminek az activesheet-jét átveszi, emiatt viszont a második megnyitott fájl már írásvédett lesz és az általam generált bagatell módosításokat nem tudom átvenni. (le tudnám menteni más néven, vagyis meg tudnám kerülni ezt a probémát, de nem ez a cél, szeretnék egy elegáns megoldást találni erre)
Mivel a mahinálni kívánt fájl egy nagyon buta, de rendesen levédett fájl, ezért gondoltam arra is, hogy ott lehet a kutya elásva. A megoldásom viszont a teljesen sima új tesztcélra generált fájlt sem tudta az elvárásoknak megfelelően kezelni.
Remélem valaki találkozott már ezzel a problémával.
Köszönöm előre is!class timecnt
dim st, et, ps, nwt, uswt, swt
end class
dim list(9)
' arrayclass deklaralas
for i=0 to 9
set list(i) = new timecnt
next
' adatok kiolvasasa
'----------------------------------------------------------------------------------------
'http://www.oooforum.de/viewtopic.php?t=44190
Set objServiceManager = WScript.CreateObject("com.sun.star.ServiceManager")
Set StarDesktop = objServiceManager.createInstance("com.sun.star.frame.Desktop")
cURL = "file:///D:\BR\netzlaufwerk\NFO\vbs\libre_officemuster\test\test.ods"
set oDoc = StarDesktop.loadComponentFromURL( cURL, "_blank", 0, Array() )
set oSheet = oDoc.CurrentController.ActiveSheet
'egyeb nem mukodo megoldasok
'set oSheet = oDoc.getSheets().getByName( "Tabelle1" )
'set oSheets = oDoc.getSheets()
'set oSheet = oSheets.getByIndex(0)
'----------------------------------------------------------------------------------------
call librecalc_read
wknd = false
' szamitasok elvegzese
for i=0 to 9
with list(i)
sh = CutLeft ( .st, ":" )
sm = CutRight( .st, ":" )
eh = CutLeft ( .et, ":" )
em = CutRight( .et, ":" )
wtime = worktime_count(sh, sm, eh, em, .ps)
if not wknd then
if wtime<=8 then
.nwt = wtime
else
.nwt = 8
.uswt = wtime-8
.swt = 0
end if
else
.nwt = 0
.uswt = 0
.swt = wtime
end if
end with
next
' adatok kiirasa
call librecalc_write
erase list
'----------------------------------------------------------------------------------------
set oSheet = nothing
set oDoc = nothing
Set StarDesktop = nothing
Set objServiceManager = nothing
'----------------------------------------------------------------------------------------
MsgBox "process is done"
function worktime_count(starth, startm, endh, endm, pause)
'msgbox starth + " " + startm + "" + endh + " " + endm + " " + pause
worktime_count = cInt(endh) + cInt(endm) / 60 - cInt(starth) - cInt(startm)/60
if pause <> "" then worktime_count = worktime_count - cInt(pause) / 60
end function
function CutLeft(txt, sym)
if txt<>"" then
s_e = inStr( txt, sym )-1
CutLeft = left ( txt, s_e)
end if
end function
function CutRight(txt, sym)
if txt<>"" then
s_a = inStr(txt, sym)
CutRight = right(txt, len(txt) - s_a)
end if
end function
sub librecalc_read()
for i = 0 to 9
list(i).st = oSheet.getCellByPosition( 1, 15 + i ).String 'B16
list(i).et = oSheet.getCellByPosition( 2, 15 + i ).String 'C16
list(i).ps = oSheet.getCellByPosition( 6, 15 + i ).String 'G16
next
end sub
sub librecalc_write()
for i=0 to 9
with list(i)
if .nwt<>0 then
oSheet.getCellByPosition( 3, 15 + i ).Value = .nwt 'D16
end if
if .uswt<>0 then
oSheet.getCellByPosition( 4, 15 + i ).Value = .uswt 'E16
end if
if .swt<>0 then
oSheet.getCellByPosition( 5, 15 + i ).Value = .swt 'F16
end if
end with
next
end sub -
alfa20
senior tag
válasz
martonx #2872 üzenetére
Köszi, ezek mind be vannak állítva, másik gépről MySQL Workbanch-el elérem az adatbázist SSH kapcsolattal. Viszont azt nem tudom hogy tudnám ezt VB.NET-ben kivitelezni, eddig csak olyan csatlakozásokat találtam ahol egy IP:port címre kellett kapcsolódni, de nekem meg egyszer a Pi-re, majd onnan a MySQL-re.
Vagy nem tudom -
alfa20
senior tag
Sziasztok!
Egy hálózaton van több gép is, ezek közül az egyik egy PI3 amin fut egy Webmin + Apache + MySQL, erre hogy tudok VB.NET-el fel csatlakozni?
MySQL Workbanch-el elérem az adatbázist SSH kapcsolattal
Pi3 IP: 192.168.0.13:22
Pi3 MySQL: 127.0.0.1::3306Workbanch mind két jelszót kéri a Pi-ét és a adatbázisét is.
-
Bazs87
tag
RITKÁN, de van hogy a lustaság nem kifizetődő
így már a tesztejim szerint működik:
xlsx_dict = "U:\6_798\Translate\v01\pl.xlsx"
xlsx_trgt = "U:\6_798\Translate\v01\TIAProjectTexts_mod.xlsx"
Set fso = CreateObject( "Scripting.FileSystemObject" )
Set wobu = CreateObject("Scripting.Dictionary")
Set objExcel = CreateObject("Excel.Application")
if not fso.FileExists(xlsx_dict) then
MsgBox xlsx_dict + " nicht gefunden"
WScript.Quit()
end if
if not fso.FileExists(xlsx_trgt) then
MsgBox xlsx_trgt + " nicht gefunden"
WScript.Quit()
end if
objExcel.WorkBooks.Open xlsx_dict
Set objSheet = objExcel.ActiveWorkbook.Worksheets(1)
'dict aufladen
for i=1 to 532
tmp1 = cStr(objSheet.Cells(i,1).Value)
tmp2 = cStr(objSheet.Cells(i,2).Value)
tmp1 = Replace(tmp1,vbcrln,"</\>")
tmp2 = Replace(tmp2,vbcrln,"</\>")
if not wobu.exists(tmp1) then
wobu.add tmp1, tmp2
else
'MsgBox "Problem mit key: " + tmp1
end if
next
objExcel.ActiveWorkbook.Save
objExcel.ActiveWorkbook.Close
objExcel.WorkBooks.Open xlsx_trgt
Set objSheet = objExcel.ActiveWorkbook.Worksheets(1)
'Übersetzen
for i=2 to 24257
dtext = objSheet.Cells(i,5).Value
dtext = Replace(dtext,vbcrln,"</\>")
if wobu.exists(dtext) then
tmp = Replace(wobu(dtext),"</\>",vbcrln)
objSheet.Cells(i,6).Value = tmp
else
'
end if
next
objExcel.ActiveWorkbook.Save
objExcel.ActiveWorkbook.Close
objExcel.Application.Quit
Set objSheet = nothing
set objExcel = nothing
Set wobu = nothing
Set fso = nothing
msgBox "Fertig" -
Bazs87
tag
Sziasztok!
Érdekes problémával találtam magam szembe:
Feladat:
van egy laza 25ezer soros német-lengyel fordításom, ami egy programból (Siemens TIA Portal) lett exportálva. A "text"manipulálás után szeretném visszatölteni ezt. Persze az új verzió egy libből kikeresve lefordítja amit letud (szakmai szöveg, nem érdemes összekötni semmilyen értelmes fordítóval, max ha gálvölgyi show-t és elégedetlen ügyfelet akarunk)Megoldási elv(eddig):
létrehoztam egy vbs ole kapcsolatot excellel. (ne kérdezzétek miért, nekem komfortosabb így, mint az excel makrófelületével dolgozni)
A program megnyitja a szótár excelt és az A oszlop elemei lesznek a key-ek, B oszlop azonos sorainak elemei pedig az adatok.
Excel becsuk, új doku kinyit és egy sima compare után beírogatom a lengyel verziót. Ezután elmentem és mindenki boldog....Probléma:
a txt sorai és az excel cellák tartalma nem azonos szintaxúak -> tele vannak a cellákon belüli "értékek"/adatok sortöréssel.
Erre felkészültem, ezért nem txt a szótár fájlom, hanem excel.
A dictionary key eleme viszont vmiért ezeket nem veszi át.Másik perverzebb ötletem az lenne, hogy még excelben helyettesíteni kell a vbcrln karaktereket valamilyen egyéb karakterre v láncra amit a mod végén visszahelyettesítenék (és ugye nincs a szövegben persze), de ugye ez plusz munka és nem vagyok túl szorgalmas ilyen fronton.
Szeretek tanulni a hibámból, mert minden bizonyára elvi hibám van.
Kérésre rendelkezésetekre tudom bocsátani az adatokat is, a kód így fest:xlsx_dict = "U:\6_798\Translate\v01\pl.xlsx"
xlsx_trgt = "U:\6_798\Translate\v01\TIAProjectTexts_mod.xlsx"
Set fso = CreateObject( "Scripting.FileSystemObject" )
Set szotar = CreateObject("Scripting.Dictionary")
Set objExcel = CreateObject("Excel.Application")
if not fso.FileExists(xlsx_dict) then
MsgBox xlsx_dict + " nicht gefunden"
WScript.Quit()
end if
if not fso.FileExists(xlsx_trgt) then
MsgBox xlsx_trgt + " nicht gefunden"
WScript.Quit()
end if
objExcel.WorkBooks.Open xlsx_dict
Set objSheet = objExcel.ActiveWorkbook.Worksheets(1)
'dict aufladen
for i=1 to 532
tmp1 = cStr(objSheet.Cells(i,1).Value)
tmp2 = cStr(objSheet.Cells(i,2).Value)
if not szotar.exists(tmp1) then
szotar.add tmp1, tmp2
else
'MsgBox "Problem mit key: " + tmp1
end if
next
objExcel.ActiveWorkbook.Save
objExcel.ActiveWorkbook.Close
objExcel.WorkBooks.Open xlsx_trgt
Set objSheet = objExcel.ActiveWorkbook.Worksheets(1)
' Übersetzen
for i=2 to 24257
dtext = objSheet.Cells(i,5).Value
if szotar.exists(dtext) then
objSheet.Cells(i,6).Value = szotar(dtext)
else
'
end if
next
objExcel.ActiveWorkbook.Save
objExcel.ActiveWorkbook.Close
objExcel.Application.Quit
Set objSheet = nothing
set objExcel = nothing
Set szotar = nothing
Set fso = nothing
msgBox "Fertig"Köszönöm az esetleges ötleteket!
Követem a fórumot és öröm olvasni a profi megoldásaitokat! -
lorcsi
veterán
kellene egy komolyabb help
a suliban visual studiot használok az otthoni acc-ommal
írtunk egy progit és csak az ottani hálóra mentettem el, de jó lenen a hétvégéán itthon is csinálni
szerintetek a háttérben accomra feltöltötte vajon?
létezik iylen? -
PETEE78
senior tag
Sziasztok!
Outlook2013 Inbox beérkező levelek küldő, tárgy, dátum, esetleg méret adatait szeretném kigyűjteni egy excel munkalapra. Nyilván a Ctrl+c volna a legegyszerűbb...
Ezt hogy lehet vb-ben megírni? Mondjuk adott, hogy az adott excel is már meg van nyitva illetve nyilván az Outlook is.Vagy esetleg csak a fent említett adatokat 1db txt file-ba lementeni?
Ha útmutatót adnátok milyen parancsokkal induljak el, nekem az is megfelel.
Segítségeteket előre is köszönöm!
-
Delila_1
veterán
válasz
alexy92 #2861 üzenetére
A bemásolt tengeri kígyóban ilyen részletek vannak:
Range("C1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("H" & Rows.Count).End(xlUp).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=FalseSelect utasítások nélkül
usor = Range("C1").End(xlDown).Row
Range("C2:C" & usor).Copy
With Workbooks("invoices_masterfile.xlsm").Sheets("main")
usor = .Range("H" & Rows.Count).End(xlUp).Row + 1
.Range("H" & usor).PasteSpecial Paste:=xlPasteValues
End WithLátod, az usor változót felhasználtam a másoláshoz. Az adatok már ott csücsülnek a vágólapon, a másik füzet egyik lapján új értéket rendelhetek hozzá, jelen esetben a H oszlop első üres sorának a számát.
A Select utasítások ráállnak az adott füzet adott lapjára, ott is bizonyos cellá(k)ra. Ez időveszteség, ráadásul ugrál a kép.Végül
If Err.Number <> 0 Then
sub3
Else
On Error GoTo 0
sub2
End If -
Ispy
nagyúr
válasz
alexy92 #2863 üzenetére
Ezt megcsináltad? Minden subrutinba rakd be az Err.Clear-t, mert szerintem amikor hiba után bemegy egy hiba sub-ba, akkor megtartja az eredeti hiba értékét és ezért a 2. körben is a hiba sub-ba fog menni, annak ellenére, hogy ott nincsen hiba.
Szóval minden sub elejére rakjad be, hogy Err.Clear....
-
Ispy
nagyúr
válasz
alexy92 #2855 üzenetére
Na, a feladat a következő: ezt az egészet mentsed el, tedd félre. Nincs az az isten, hogy tapasztalat nélkül ebbe a kóddzsungelben bármit is megtaláljál.
Utána kezd el 0-ról, apránként, minimális kóddal. Ha megy, akkor adjál hozzá még egy részt, és így tovább. Ha nem megy, akkor állj meg és akkor térjünk vissza rá.
-
sztanozs
veterán
válasz
alexy92 #2857 üzenetére
Első körben a felesleges Select és Activate sorokat vedd ki:
- két (vagy több) select egymás után felesleges, csak az utolsó maradjon meg (kiváve, ah a következőben fel van használva a selection, de ezeket inkább egy sorba kell tömöríteni
- aktív sheet-et vagy workbook-ot újra aktiválni felesleges
- a valami.Select + Selected.Value = ... felesleges, helyette valami.Value = ... elég, nem kell kijelölni, ráadásul gyorsabb is
- ha nem Select-tel dolgozol, hanem közvetlen referenciával, akkor nem kell Activate és Select:Workbooks("Workbook.xls").Worksheet("Sheetnév").Range("CellaReferencia").Value = "valami"
- Copy/PasteSpecial:value helyett sokkal (!) gyorsabb az Array copy: [link] -
alexy92
aktív tag
Sub All()
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("Radler").Activate
Columns("K:K").Select
Selection.Replace What:="/", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Columns("A:A").Select
Range("L1").Select
ActiveCell.Value = "Check if its in masterfile"
Range("L2").Select
ActiveCell.FormulaR1C1 = "=IFERROR(MATCH(RC[-1],[invoices_masterfile.xlsm]main!C13,0),""Not in file"")"
With Sheets("Radler")
LR = Range("K" & Rows.Count).End(xlUp).Row
Range("L1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
End With
Range("1:1").Select
Selection.AutoFilter
ActiveSheet.Range("$A:$L").AutoFilter Field:=12, Criteria1:= _
"Not in file"
Range("B1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
On Error Resume Next
Selection.Copy
If Err.Number <> 0 Then
CevaBelgium
Else
VKtrans
End If
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("G" & Rows.Count).End(xlUp).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("Radler").Activate
Range("B1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("H" & Rows.Count).End(xlUp).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("Radler").Activate
Range("D1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("I" & Rows.Count).End(xlUp).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("Radler").Activate
Range("D1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("J" & Rows.Count).End(xlUp).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("Radler").Activate
Range("G1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("M" & Rows.Count).End(xlUp).Offset(1, -1).Activate
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("Radler").Activate
Range("K1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("M" & Rows.Count).End(xlUp).Offset(1, 0).Activate
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Range("A" & Rows.Count).End(xlUp).Offset(1).Select
ActiveCell.FormulaR1C1 = "=vlookup(RC[1],vendor_codes!C1:C2,2,0)"
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = "RADLER KFT."
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "=Year(RC[4])"
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "=Month(RC[3])"
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "=isoweeknum(RC[2])"
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "=vlookup(RC[-2],MOR!C1:C2,2,0)"
Range("K" & Rows.Count).End(xlUp).Offset(1).Select
ActiveCell.FormulaR1C1 = "=RC[-1]*RC[-5]"
With Sheets("main")
LR = Range("H" & Rows.Count).End(xlUp).Row
Range("A1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("B1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("C1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("D1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("E1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("F1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("K1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
End With
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("Radler").Activate
Rows("1:1").Activate
Selection.AutoFilter
Columns("L").Select
Selection.Delete Shift:=xlToLeft
Range("A1").Select
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
End Sub
Sub VKtrans()
Selection.Clear
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("VK Transport").Activate
Columns("A:A").Select
Selection.Replace What:="-", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Range("V1").Select
ActiveCell.Value = "Check if its in masterfile"
Range("V2").Select
ActiveCell.FormulaR1C1 = "=IFERROR(MATCH(RC[-21],[invoices_masterfile.xlsm]main!C13,0),""Not in file"")"
With Sheets("VK Transport")
LR = Range("A" & Rows.Count).End(xlUp).Row
Range("V1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
End With
Range("1:1").Select
Selection.AutoFilter
ActiveSheet.Range("$A:$V").AutoFilter Field:=22, Criteria1:= _
"Not in file"
Range("B1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
On Error Resume Next
Selection.Copy
If Err.Number <> 0 Then
DSVROADNV
Else
CevaBelgium
End If
Windows("invoices_masterfile.xlsm").Activate
Range("G" & Rows.Count).End(xlUp).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("VK Transport").Activate
Range("B1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("H" & Rows.Count).End(xlUp).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("VK Transport").Activate
Range("L1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("J" & Rows.Count).End(xlUp).Offset(1, -1).Select
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("VK Transport").Activate
Range("L1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("J" & Rows.Count).End(xlUp).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("VK Transport").Activate
With Sheets("VK Transport")
LR = Range("A" & Rows.Count).End(xlUp).Row
Range("O2").End(xlDown).Offset(0, 2).Select
Range("Q2", "Q" & LR).Select
End With
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("M" & Rows.Count).End(xlUp).Offset(1, -1).Activate
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("VK Transport").Activate
Range("A1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("M" & Rows.Count).End(xlUp).Offset(1, 0).Activate
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Range("A" & Rows.Count).End(xlUp).Offset(1).Select
ActiveCell.FormulaR1C1 = "=vlookup(RC[1],vendor_codes!C1:C2,2,0)"
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = "VK Transport"
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "=Year(RC[4])"
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "=Month(RC[3])"
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "=isoweeknum(RC[2])"
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "=vlookup(RC[-2],MOR!C1:C2,2,0)"
Range("K" & Rows.Count).End(xlUp).Offset(1).Select
ActiveCell.FormulaR1C1 = "=RC[-1]*RC[-5]"
With Sheets("main")
LR = Range("H" & Rows.Count).End(xlUp).Row
Range("A1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("B1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("C1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("D1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("E1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("F1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("K1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
End With
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("VK Transport").Activate
Rows("1:1").Activate
Selection.AutoFilter
Columns("V:V").Select
Selection.Delete Shift:=xlToLeft
Range("A1").Select
Windows("invoices_masterfile.xlsm").Activate
End Sub
Sub CevaBelgium()
Selection.Clear
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("Ceva Belgium").Activate
Columns("A:B").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A1").Select
ActiveCell.Value = "Invoice Date"
Range("B1").Select
ActiveCell.Value = "Service Date"
Range("A2").Select
ActiveCell.FormulaR1C1 = "=Date(Left(RC[3],4),mid(RC[3],5,2),right(RC[3],2))"
Range("B2").Select
ActiveCell.FormulaR1C1 = "=iferror(Date(Left(RC[20],4),mid(RC[20],5,2),right(RC[20],2)),RC[-1])"
Columns("C:C").Select
Selection.TextToColumns Destination:=Range("C1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 1), TrailingMinusNumbers:=True
Range("CJ1").Select
ActiveCell.Value = "Check if its in the masterfile"
Range("CJ2").Select
ActiveCell.FormulaR1C1 = "=IFERROR(MATCH(RC[-85],[invoices_masterfile.xlsm]main!C13,0),""Not in file"")"
With Sheets("Ceva Belgium")
LR = Range("H" & Rows.Count).End(xlUp).Row
Range("A1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("B1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("CJ1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
End With
Range("1:1").Select
Selection.AutoFilter
ActiveSheet.Range("$A:$CJ").AutoFilter Field:=88, Criteria1:= _
"Not in file"
Range("A1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
On Error Resume Next
Selection.Copy
If Err.Number <> 0 Then
Azkar
Else
DSVROADNV
End If
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("H" & Rows.Count).End(xlUp).Offset(1, 0).Activate
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("Ceva Belgium").Activate
Range("B1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("G" & Rows.Count).End(xlUp).Offset(1, 0).Activate
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("Ceva Belgium").Activate
Range("AN1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("J" & Rows.Count).End(xlUp).Offset(1, -1).Activate
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("Ceva Belgium").Activate
Range("AN1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("J" & Rows.Count).End(xlUp).Offset(1, 0).Activate
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("Ceva Belgium").Activate
Range("AL1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("M" & Rows.Count).End(xlUp).Offset(1, -1).Activate
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("Ceva Belgium").Activate
Range("C1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("M" & Rows.Count).End(xlUp).Offset(1, 0).Activate
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Range("A" & Rows.Count).End(xlUp).Offset(1).Select
ActiveCell.FormulaR1C1 = "=vlookup(RC[1],vendor_codes!C1:C2,2,0)"
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = "CEVA FREIGHT BELGIUM N.V."
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "=Year(RC[4])"
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "=Month(RC[3])"
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "=isoweeknum(RC[2])"
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "=vlookup(RC[-2],MOR!C1:C2,2,0)"
Range("K" & Rows.Count).End(xlUp).Offset(1).Select
ActiveCell.FormulaR1C1 = "=RC[-1]*RC[-5]"
With Sheets("main")
LR = Range("H" & Rows.Count).End(xlUp).Row
Range("A1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("B1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("C1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("D1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("E1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("F1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("K1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
End With
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("Ceva Belgium").Activate
Range("1:1").Select
Selection.AutoFilter
Columns("CJ:CJ").Select
Selection.Delete Shift:=xlToLeft
Columns("A:B").Select
Selection.Delete Shift:=xlToLeft
Range("A1").Select
Windows("invoices_masterfile.xlsm").Activate
End Sub
Sub DSVROADNV()
Selection.Clear
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("DSV Road").Activate
Range("S1").Select
ActiveCell.Value = "Check if its in the masterfile"
Range("S2").Select
ActiveCell.FormulaR1C1 = "=Iferror(match(RC[-18],[invoices_masterfile.xlsm]main!C13,0),""Not in file"")"
With Sheets("DSV Road")
LR = Range("A" & Rows.Count).End(xlUp).Row
Range("S1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
End With
Range("1:1").Select
Selection.AutoFilter
ActiveSheet.Range("$A:$S").AutoFilter Field:=19, Criteria1:= _
"Not in file"
Range("b1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
On Error Resume Next
Selection.Copy
If Err.Number <> 0 Then
DachserBE
Else
Azkar
End If
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("G" & Rows.Count).End(xlUp).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("DSV Road").Activate
Range("b1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("H" & Rows.Count).End(xlUp).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("DSV Road").Activate
Range("L1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("I" & Rows.Count).End(xlUp).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("DSV Road").Activate
Range("L1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("J" & Rows.Count).End(xlUp).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("DSV Road").Activate
With Sheets("DSV Road")
LR = Range("A" & Rows.Count).End(xlUp).Row
Range("M2").End(xlDown).Offset(0, 1).Select
Range("N2", "N" & LR).Select
End With
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Range("M" & Rows.Count).End(xlUp).Offset(1, -1).Select
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("DSV Road").Activate
Range("A1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("M" & Rows.Count).End(xlUp).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Range("A" & Rows.Count).End(xlUp).Offset(1).Select
ActiveCell.FormulaR1C1 = "=vlookup(RC[1],vendor_codes!C1:C2,2,0)"
Range("B" & Rows.Count).End(xlUp).Offset(1).Select
ActiveCell.FormulaR1C1 = "DSV ROAD N V"
Range("C" & Rows.Count).End(xlUp).Offset(1).Select
ActiveCell.FormulaR1C1 = "=YEAR(RC[4])"
Range("D" & Rows.Count).End(xlUp).Offset(1).Select
ActiveCell.FormulaR1C1 = "=month(RC[3])"
Range("E" & Rows.Count).End(xlUp).Offset(1).Select
ActiveCell.FormulaR1C1 = "=Isoweeknum(RC[3])"
Range("F" & Rows.Count).End(xlUp).Offset(1).Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-2],MOR!C1:C2,2,0)"
Range("K" & Rows.Count).End(xlUp).Offset(1).Select
ActiveCell.FormulaR1C1 = "=RC[-1]*RC[-5]"
With Sheets("main")
LR = Range("H" & Rows.Count).End(xlUp).Row
Range("A1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("B1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("C1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("D1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("E1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("F1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("K1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
End With
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("DSV Road").Activate
Rows("1:1").Select
Selection.AutoFilter
Columns("S").Select
Selection.Delete Shift:=xlToLeft
Range("A1").Select
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
End Sub
Sub Azkar()
Selection.Clear
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("Azkar").Activate
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 1), TrailingMinusNumbers:=True
Columns("P:P").Select
Selection.TextToColumns Destination:=Range("P1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 1), TrailingMinusNumbers:=True
Range("Z1").Select
ActiveCell.Value = " Check if its in the matserfile"
Range("Z2").Select
ActiveCell.FormulaR1C1 = "=IFERROR(MATCH(RC[-25],[invoices_masterfile.xlsm]main!C13,0),""Not in file"")"
With Sheets("Azkar")
LR = Range("A" & Rows.Count).End(xlUp).Row
Range("Z1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
End With
Rows("1:1").Select
Selection.AutoFilter
ActiveSheet.Range("$A:$Z").AutoFilter Field:=26, Criteria1:= _
"Not in file"
Range("O1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
On Error Resume Next
Selection.Copy
If Err.Number <> 0 Then
DachserHU
Else
DachserBE
End If
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("H" & Rows.Count).End(xlUp).Offset(1, 0).Activate
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("Azkar").Activate
Range("O1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("G" & Rows.Count).End(xlUp).Offset(1, 0).Activate
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Windows("raw_invoice_riports.xlsx").Activate
Range("N1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Range("J" & Rows.Count).End(xlUp).Offset(1, -1).Activate
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Windows("raw_invoice_riports.xlsx").Activate
Range("N1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("J" & Rows.Count).End(xlUp).Offset(1, 0).Activate
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("Azkar").Activate
Range("A1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("M" & Rows.Count).End(xlUp).Offset(1, 0).Activate
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("Azkar").Activate
With Sheets("Azkar")
LR = Range("A" & Rows.Count).End(xlUp).Row
Range("O2").End(xlDown).Offset(0, 1).Select
Range("P2", "P" & LR).Select
End With
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("K" & Rows.Count).End(xlUp).Offset(1, 1).Activate
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Range("A" & Rows.Count).End(xlUp).Offset(1).Select
ActiveCell.FormulaR1C1 = "=vlookup(RC[1],vendor_codes!C1:C2,2,0)"
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = "TRANSPORTES AZKAR, S.A"
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "=Year(RC[4])"
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "=Month(RC[3])"
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "=isoweeknum(RC[2])"
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "=vlookup(RC[-2],MOR!C1:C2,2,0)"
Range("K" & Rows.Count).End(xlUp).Offset(1).Select
ActiveCell.FormulaR1C1 = "=RC[-1]*RC[-5]"
With Sheets("main")
LR = Range("H" & Rows.Count).End(xlUp).Row
Range("A1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("B1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("C1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("D1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("E1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("F1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("K1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
End With
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("Azkar").Activate
Range("1:1").Select
Selection.AutoFilter
Columns("Z:Z").Select
Selection.Delete Shift:=xlToLeft
Range("A1").Select
Windows("invoices_masterfile.xlsm").Activate
End Sub
Sub DachserBE()
Selection.Clear
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("Dachser BE").Activate
Range("S1").Select
ActiveCell.Value = "Check if its in masterfile"
Range("s2").Select
ActiveCell.FormulaR1C1 = "=IFERROR(MATCH(RC[-2],[invoices_masterfile.xlsm]main!C13,0),""Not in file"")"
Range("t1").Select
ActiveCell.Value = "Date"
Range("t2").Select
ActiveCell.FormulaR1C1 = "=date(right(RC[-19],4),mid(RC[-19],4,2),left(RC[-19],2))"
With Sheets("Dachser BE")
LR = Range("Q" & Rows.Count).End(xlUp).Row
Range("S1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("T1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
End With
Range("1:1").Select
Selection.AutoFilter
ActiveSheet.Range("$A:$M").AutoFilter Field:=19, Criteria1:= _
"Not in file"
Range("T1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
On Error Resume Next
Selection.Copy
If Err.Number <> 0 Then
WaberersINT
Else
DachserHU
End If
Windows("raw_invoice_riports.xlsx").Activate
Windows("invoices_masterfile.xlsm").Activate
Range("G" & Rows.Count).End(xlUp).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Range("H" & Rows.Count).End(xlUp).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Range("J" & Rows.Count).End(xlUp).Offset(1, -1).Select
Windows("raw_invoice_riports.xlsx").Activate
Selection.End(xlUp).Select
Range("P1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Range("J" & Rows.Count).End(xlUp).Offset(1).Select
Windows("raw_invoice_riports.xlsx").Activate
Selection.End(xlUp).Select
Range("P1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Windows("raw_invoice_riports.xlsx").Activate
Range("F1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Range("M" & Rows.Count).End(xlUp).Offset(0).Select
ActiveCell.Offset(1, -1).Activate
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Windows("raw_invoice_riports.xlsx").Activate
Range("Q1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Range("M" & Rows.Count).End(xlUp).Offset(1).Select
ActiveCell.Offset(0, 0).Activate
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Range("F" & Rows.Count).End(xlUp).Offset(1).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range("A" & Rows.Count).End(xlUp).Offset(1).Select
ActiveCell.FormulaR1C1 = "=vlookup(RC[1],vendor_codes!C1:C2,2,0)"
Range("B" & Rows.Count).End(xlUp).Offset(1).Select
ActiveCell.FormulaR1C1 = "DACHSER TRANSPORT BELGIE"
Range("C" & Rows.Count).End(xlUp).Offset(1).Select
ActiveCell.FormulaR1C1 = "=YEAR(RC[4])"
Range("D" & Rows.Count).End(xlUp).Offset(1).Select
ActiveCell.FormulaR1C1 = "=month(RC[3])"
Range("E" & Rows.Count).End(xlUp).Offset(1).Select
ActiveCell.FormulaR1C1 = "=Isoweeknum(RC[3])"
Range("F" & Rows.Count).End(xlUp).Offset(1).Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-2],MOR!C1:C2,2,0)"
Range("K" & Rows.Count).End(xlUp).Offset(1).Select
ActiveCell.FormulaR1C1 = "=RC[-1]*RC[-5]"
With Sheets("main")
LR = Range("H" & Rows.Count).End(xlUp).Row
Range("A1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("B1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("C1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("D1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("E1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("F1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("K1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
End With
ActiveSheet.Range("1:1").AutoFilter
Windows("raw_invoice_riports.xlsx").Activate
Rows("1:1").Select
Selection.AutoFilter
Columns("S:T").Select
Selection.Delete Shift:=xlToLeft
Range("A1").Select
Windows("invoices_masterfile.xlsm").Activate
End Sub
Sub DachserHU()
On Error GoTo 0
Selection.Clear
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("Dachser HU").Activate
Range("AJ1").Select
ActiveCell.Value = "Check if its in the masterfile"
Range("AJ2").Select
ActiveCell.FormulaR1C1 = "=IFERROR(MATCH(RC[-2],[invoices_masterfile.xlsm]main!C13,0),""Not in file"")"
With Sheets("Dachser HU")
LR = Range("AH" & Rows.Count).End(xlUp).Row
Range("AJ1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
End With
Range("1:1").Select
Selection.AutoFilter
ActiveSheet.Range("$A:$AJ").AutoFilter Field:=36, Criteria1:= _
"Not in file"
Range("V1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
On Error Resume Next
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("G" & Rows.Count).End(xlUp).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("Dachser HU").Activate
Range("V1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("H" & Rows.Count).End(xlUp).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
If Err.Number <> 0 Then
Vege
Else
WaberersINT
End If
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("Dachser HU").Activate
Range("W1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("J" & Rows.Count).End(xlUp).Offset(1, -1).Select
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("Dachser HU").Activate
Range("W1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("J" & Rows.Count).End(xlUp).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("Dachser HU").Activate
Range("D1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("K" & Rows.Count).End(xlUp).Offset(1, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("Dachser HU").Activate
Range("AH1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("M" & Rows.Count).End(xlUp).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Range("A" & Rows.Count).End(xlUp).Offset(1).Select
ActiveCell.FormulaR1C1 = "=vlookup(RC[1],vendor_codes!C1:C2,2,0)"
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = "LIEGL & DACHSER SZALLITMANYOZASI ES"
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "=Year(RC[4])"
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "=Month(RC[3])"
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "=isoweeknum(RC[2])"
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "=vlookup(RC[-2],MOR!C1:C2,2,0)"
Range("K" & Rows.Count).End(xlUp).Offset(1).Select
ActiveCell.FormulaR1C1 = "=RC[-1]*RC[-5]"
With Sheets("main")
LR = Range("H" & Rows.Count).End(xlUp).Row
Range("A1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("B1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("C1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("D1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("E1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("F1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("K1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
End With
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("Dachser HU").Activate
Rows("1:1").Activate
Selection.AutoFilter
Columns("AJ").Select
Selection.Delete Shift:=xlToLeft
Range("A1").Select
Windows("invoices_masterfile.xlsm").Activate
End Sub
Sub WaberersINT()
Selection.Clear
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("Waberers INT").Activate
Columns("A:A").Select
Range("J1").Select
ActiveCell.Value = "Check if its in masterfile"
Range("J2").Select
ActiveCell.FormulaR1C1 = "=IFERROR(MATCH(RC[-8],[invoices_masterfile.xlsm]main!C13,0),""Not in file"")"
With Sheets("Waberers INT")
LR = Range("A" & Rows.Count).End(xlUp).Row
Range("J1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
End With
Range("1:1").Select
Selection.AutoFilter
ActiveSheet.Range("$A:$J").AutoFilter Field:=10, Criteria1:= _
"Not in file"
Range("C1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
On Error Resume Next
Selection.Copy
If Err.Number <> 0 Then
Vege
Else
Vege
End If
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("G" & Rows.Count).End(xlUp).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("Waberers INT").Activate
Range("C1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("H" & Rows.Count).End(xlUp).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("Waberers INT").Activate
Range("F1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("J" & Rows.Count).End(xlUp).Offset(1, -1).Select
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("Waberers INT").Activate
Range("F1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("J" & Rows.Count).End(xlUp).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("Waberers INT").Activate
Range("B1").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
Range("M" & Rows.Count).End(xlUp).Offset(1, 0).Activate
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
:=False, Transpose:=False
Range("A" & Rows.Count).End(xlUp).Offset(1).Select
ActiveCell.FormulaR1C1 = "=vlookup(RC[1],vendor_codes!C1:C2,2,0)"
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = "WABERERS INTERNATIONAL ZRT"
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "=Year(RC[4])"
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "=Month(RC[3])"
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "=isoweeknum(RC[2])"
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "=vlookup(RC[-2],MOR!C1:C2,2,0)"
Range("K" & Rows.Count).End(xlUp).Offset(1).Select
ActiveCell.FormulaR1C1 = "=RC[-1]*RC[-5]"
With Sheets("main")
LR = Range("H" & Rows.Count).End(xlUp).Row
Range("A1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("B1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("C1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("D1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("E1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("F1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
Range("K1").End(xlDown).Offset(0, 0).Activate
ActiveCell.AutoFill Range(ActiveCell.Address, Cells(LR, ActiveCell.Column))
End With
Windows("raw_invoice_riports.xlsx").Activate
Worksheets("Waberers INT").Activate
Rows("1:1").Activate
Selection.AutoFilter
Columns("J:J").Select
Selection.Delete Shift:=xlToLeft
Range("A1").Select
Windows("invoices_masterfile.xlsm").Activate
Worksheets("main").Activate
End Sub
Sub Vege()
Selection.Clear
MsgBox "Siker!", vbExclamation
End
End SubÍgy lenne, és a többit már tudjátok
-
Ispy
nagyúr
válasz
alexy92 #2851 üzenetére
Nem nagyon programoztam még excelben, szóval az én elképzelésem:
Dim IsError as boolean
Private Sub Main -> a fő kódod, gondolom valamilyen eventre fut le az egész cucc
On Error GoTo ErrHandling
valami kód, amit írtál és mindig gebasz van vele...
IF IsError = True Then
Call Sub2
Else
Call Sub3
End IF
valami kód, amit írtál és mindig gebasz van vele...
IF IsError = True Then
Call Sub4
Else
Call Sub5
End IF
exit sub
ErrHangling:
IsError = True
Resume
End Sub
Private Sub Sub2
IsError = False
....
End SubPersze lehet ezt még finomítani kell, kb. 5 éve nem nyúltam VBA kódhoz, de kb. így csinálnám. A subokat el is lehet hagyni, csak akkor van értelme külön kódba kiemelni, ha több helyen is használod ugyanazt a kódot.
Ha mondjuk egész kódrészleteket beraknál ide, akkor nagyobb eséllyel tudunk hibát keresni mi is....
-
-
alexy92
aktív tag
Szia,
Sajnos nem vagyok még expert, így tudnál segíteni a változóban? Illetve a változó minden sub elejére kell?
Azt látom, ott ahol hibára futok, oda kell majd berakjam az on error goto VÁLTOZÓ. ÉS a változóban lesz majd az iferror, a subok elején meg az Iserror-t false-á teszem.Köszi!
-
Ispy
nagyúr
válasz
alexy92 #2849 üzenetére
Rakjál be egy breakpointot az else-re és nézzed meg mi az értéke az Err.Number-nek.
Én csinálnék egy class szintű változót (IsError), majd on error goto ...., ide beraknám, hogy IsError = True, majd Resume, IF IsError = True Then sub2 Else sub 3 END IF a subok elején meg IsError = False.
-
alexy92
aktív tag
válasz
Delila_1 #2846 üzenetére
A probléma az, hogy,
Sub1
művelet
művelet
művelet
On Error Resume Next
Selection.Copy <- itt szokott kijönni az 1004-es hiba, mert sok a kijelölt cella
If Err.Number <> 0 Then sub3 Else sub2
művelet
művelet
művelet
endsub2
On error goto 0
művelet
műveletHa én a kövi sub elején nullázom le, akkor a kövi subot folytatja, az if err.number utáni részt elhagyja, ha hibára fut, ha nem. Értelemszerűen, ha hibára fut, akkor jól teszi, de nekem jelenleg hiba nélkül is átugorja.
Köszi!
-
alexy92
aktív tag
-
alexy92
aktív tag
válasz
Delila_1 #2817 üzenetére
Szia,
Most sikerült ténylegesen foglalkoznom vele, és a helyzet az, hogy szépen tovább lép a suboknál, de sajnos akkor is amikor nem dobna fel hibát. Mit ronthattam el ?
On Error Resume Next
Selection.Copy <- itt szokott kijönni az 1004-es hiba, mert sok a kijelölt cella
If Err.Number <> 0 Then kövi utáni sub Else Kövi subDe itt mindig a "kövi sub" jön ki.
Előre is köszönöm,
Viktor -
Ispy
nagyúr
Gugliban ezt találtam, nem tudom segít-e rajtad.
-
-
vilag
tag
Sziasztok!
Az lenne a kérdésem, hogy lekérdezhető-e valahogyan az autofilterrel szűrt találatok eredménye?
A bal alsó sarokban ugye kiírja, hogy "4061 rekordból 13 rekordot talált"
Ez utóbbi számot szeretném valahogy VBA-ban lekérdezni.
Megoldható ez?
Googliban és VBA-ban sem találtam megoldást (ez persze nem azt jelenti, hogy nem is létezik megoldás).Üdv, vilag
-
sztanozs
veterán
Google 5sec,
elsőmásodik találat (bár az elsőben is ott van, csak nem az első válaszban és kicsit fellengzősebben):With ActiveWindow
If .FreezePanes Then .FreezePanes = False
'Freeze F6: 5 oszlop és 6 sor zárolása
.SplitColumn = 5 'fix oszlopok száma
.SplitRow = 6 'fix sorok száma
.FreezePanes = True
End With -
Bazs87
tag
válasz
sztanozs #2831 üzenetére
ActiveWindow.FreezePanes = False
Range("F7").Select
ActiveWindow.FreezePanes = TrueHa 2D-s zárolást szeretnék(azért mert ha csak 1D-t csinálok kizárólag az első sor lehet valamilyen beteg ok miatt zárolva, viszont én az első x sort szeretném zárolni), akkor vmivel ki kell jelölnöm, hogy honnan zárjon és manuális megoldással ezt az odaklikkeléssel lehet elérni.
Talán van valamilyen expert funkció, de sajnos én nem ismerem.
Nyitott vagyok és érdeklődő -
Bazs87
tag
Sziasztok!
A fórumot olvasva kedvet kaptam az excel vba-hoz. Olyan amatőr kérdésem lenne, hogy hogyan tudom visszakapni a felhasználó által aktuálisan kiválasztott cellát? És milyen változóban tudom az értéket kimenteni?
A zárolt sor oszlopnál selectelnem kell, de elég idegesítő, h ugrál a kurzor. Az elején lementeném a végén pedig visszanavigálnék ugyanoda. Elméletem szerint így észre sem lehetne venni a működését.
Netán hamvába holt ötlet?
Köszi!
Bazs87 -
Ispy
nagyúr
válasz
sztanozs #2823 üzenetére
Hát ilyet én még nem csináltam VBA-ban (szerencsére már semmi nem csinálok VBA-ban jó ideje
), de a gugli szerint lehetséges.
-
sztanozs
veterán
Szeretnék VBA alatt elérni a System.IO.File statikus osztályt, hogy a File.Open statikus függvénnyel FileStream-et állítsak elő. Ehelyett nekem az is megfelelő, ha a FileStream osztály inicializálni tudom. De ugye VBA alatt csak defualt - argumentum nélküli - konstruktor hívható, de a FileStream-nek nincs ilyen, ezért a new keyword sem használható.
Igazából az volna, hogy most működő - Excel addin - System.Security.Cryptography.SHA512Managed objekumomat nem byte-array-jel etessem meg, hanem FileStream-mel. Ez egyrész jóval gyorsabb, másrészt memóriatakarékosabb, harmadrészt működik 2GB feletti fájlokkal is.
PowerShell és natív .NET kilőve. Esetleg még VBS jöhet szóba, de az ugyanez a tészta. -
sztanozs
veterán
Erre rá tudna pillantani valaki? [link]
Tudom, hogy perverz, de nagyon kellene... -
Bazs87
tag
válasz
martonx #2819 üzenetére
köszönöm a választ!
én inkább delphiznék, de nagyon csábító, hogy a feladat nagyját elég lenne copyzni és otpimalizálni. Minden újraírni elég nagy favágás lenne valszeg. (excel funkciókat kellene átülteni egy programba és kicsit továbbokosítani)
Mivel ismerős, akivel csinálom csak vb-ben van otthon, így csak ez marad, de akkor legalább ne a vb8-cal csináljuk...
ideje lenne valamilyen naprakész rendszerrel is dolgozni, továbbá kizáró feltétel, hogy GUI is kell
-
martonx
veterán
Szia, a VBS tökéletes játszós nyelv, viszont semmi semmivel nem kopmatilibis aminek a nevében szerepel a visual basic.
Ugyanakkor a szintaktikájuk azonos, szóval annyira nem vészes vbs-ről vb.net-re tovább mozdulni, pláne ha zöldmezős fejlesztésről van szó, akkor én csakis VB.NET-tel állnék neki (na jó én személy szerint C#-al, de a lényeg hogy .Net). -
Bazs87
tag
Sziasztok!
VBS-ezgetek egy ideje, nagyon tetszik, hogy nem kell semmit telepíteni és pofátlanul egyszerűen használható, mindezt úgy, hogy még regexp lib is van hozzá.
Egy hobbiprojekt kapcsán megkeresett egy ismerősöm, hogy vb8-ban kellene valamit alakítani, ráadásul excel VBA funkciók átvételéve.
Mi és mekkora a különbség a vb és a vb.net közt? Egyértelmű leírást nem találtam eddig, igaz csak pár percet gugliztam.Úgy gondoltam, h ha már vb.net akkor ne a 8-assal szerencsétlenedjünk, hanem az épp aktuális visual studio verzióval.
Vajon nagy fába vágom a fejszém ezzel? (sima "adatbázis"építés txt-ben és azokkal manipulálgatni, komolyabb dolgok elvileg nincsenek benne)
Köszi előre is!
Bazs87 -
Delila_1
veterán
válasz
alexy92 #2816 üzenetére
A Module1-ben találod a makrókat.
Írd meg a 9 rutint, ahol aRange("C" & sor) = Range("A" & sor) / Range("B" & sor)
sor helyére beírod a saját feladatodat. Az
If Err.Number <> 0 Then RutinC Else RutinB
sor helyén a saját rutinjaid nevét add meg! Minden rutinban különböző feladatokat adhatsz meg az én makróim osztása helyett.
-
alexy92
aktív tag
-
alexy92
aktív tag
Sziasztok,
Egy olyan makrón dolgozom, ami több hasonló műveletet végez el, több sheetről. A kérdésem az lenne, hogy van-e olyan parancs ami közé be tudom illeszteni az egyes részeket, hogy ha azon belűl bármi hibára fut, akkor azt a részt ne futassa le, hanem egyből a következő hasábra menjen?
Előre is köszönöm!
-
Ispy
nagyúr
Egyébként a gugli sokat tud ám segíteni, ha megkérdezed
-
Pali79
aktív tag
Megint elakadtam...
A régebbi leírásokba volt olyan, hogy INT, ez elméletileg a szám egész részét adja. Nekem az kell, hogy a számítás végeredménye csak egész legyen, nem kellenek a tizedes jegyek, de ilyet a linkelt leírásban sem találtam.
-
Ispy
nagyúr
A kód elejére ird be, hogy
Import system.math
, vagy ahol használni akarod oda, hogyMath.sqrt
. -
Pali79
aktív tag
Újabb kérdés: hogyan lehet gyökvonást csinálni? A neten Sqrt parancsot olvastam, de ilyen nincs a parancslistában.
Új hozzászólás Aktív témák
Hirdetés
- ÁRGARANCIA! Épített KomPhone Ryzen 5 7600X 32/64GB RTX 5070 12GB GAMER PC termékbeszámítással
- Samsung Galaxy A13 64GB, Kártyafüggetlen, 1 Év Garanciával
- AKCIÓ! Dell Optiplex 5060 TWR számítógép - i5 8500 16GB DDR4 256GB SSD 500GB HDD UHD630 WIN10
- LENOVO ThinkBook 13s - 13.3" FullHD IPS - i5-10210U - 8GB - 256GB SSD - Win11 - MAGYAR
- Lenovo ThinkCentre M910q Mini PC / i7 7gen/8GB RAM/240GB M2 SSD/12 hónap jótállással
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged