- Elkészült Oroszország első litográfiai berendezése
- Épített vízhűtés (nem kompakt) topic
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- ASUS ROG PG32UCDM: OLED csúcsmonitor tesztje
- Azonnali VGA-s kérdések órája
- Computex 2024: Itt az új ROG Ally
- Milyen TV-t vegyek?
- Multimédiás / PC-s hangfalszettek (2.0, 2.1, 5.1)
- Melyik tápegységet vegyem?
- HiFi műszaki szemmel - sztereó hangrendszerek
Hirdetés
-
Összemoshatja a Google és a Magic Leap a valódi és a digitális világokat
it Együttműködésbe kezdett a Google és a Magic Leap nevű AR-startup.
-
Computex 2024: Itt az új ROG Ally
ph Az ígéreteknek – és a kiszivárgott információknak megfelelően – az ASUS bemutatta kézikonzoljának X-szel jelölt változatát.
-
AMD Radeon undervolt/overclock
lo Minden egy hideg, téli estén kezdődött, mikor rájöttem, hogy már kicsit kevés az RTX2060...
-
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
-
-
Delila_1
Topikgazda
válasz botond187 #22353 üzenetére
A lenti képlet 2 betűből, egy 5 jegyű számból, és ismét 1 betűből álló véletlen karakterláncot hoz létre.
=KARAKTER(RANDBETWEEN(65;90)) & KARAKTER(RANDBETWEEN(65;90))& RANDBETWEEN(10000;99999) & KARAKTER(RANDBETWEEN(65;90))
A 2003-as verzióban is lehet alkalmazni a randbetween függvényt, csak be kell kapcsolni hozzá az Analysis ToolPak nevű bővítményt.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz botond187 #22373 üzenetére
Makróval:
Sub Nyolc()
Range("B2:B101") = "=CHAR(RANDBETWEEN(65,90)) & CHAR(RANDBETWEEN(65,90))& RANDBETWEEN(10000,99999) & CHAR(RANDBETWEEN(65,90))"
End SubA függvények angol nyelvű változatát könnyen megtudhatod.
1. Beírod a magyar függvényt, és ellenőrzöd, hogy működik-e.
2. Lapfülön jobb klikk, Beszúrás, Nemzetközi makrólap
3. A kapott, Makró1 nevű lapra átmásolod a magyar képlet(ek)et tartalmazó cellá(ka)t, ezen a lapon angolul jelennek meg, ezeket kell alkalmaznod a makróban.Szerk.:
"Ezután belementem a programba, ott importálás, és a kódok helyett a képletet másolta/importálta be."
Ezt a mondatot nem értem.[ Szerkesztve ]
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Fferi50
őstag
válasz botond187 #22569 üzenetére
Szia!
Csinálsz egy táblázatot, amely a hozzárendeléseket tartalmazza:
Yoszlop Z oszlop
030502 130
010905 167
........ ......
stb. stb.Amelyik oszlopba a tipust akarod tenni, abban az oszlopban fkeres képletet használhatsz:
Ha mondjuk a példádnál maradunk, akkor a képlet:
a cikkszám az A oszlopban van, a képletet teheted a B oszlopba:
=fkeres(közép(A1;3;6);Y1:Z20;2;0)Az Y1:Z20 az a tartomány, amelybe a megfeleltetési táblázatot beírtad.
Üdv.
-
-
Fferi50
őstag
válasz botond187 #22786 üzenetére
Szia!
Kell egy makrót írnod, ami végigmegy a cikkszámokon és az általad megadott cikkszám melletti cellába beírja a szintén általad definiált feltétel szerinti cikkszámokat:
Csak vázlatosan:for yy = 1 to 100
kieg=""
if cells(yy,1).value>="G-010100000" and cells(yy,1).value<="G-010100099" then
for xx= 2 to 100
if cells(xx,1).value>="G-010504000" and cells(xx,1).value<="G-010504099" then
if kieg="" then
kieg= cells(xx,1).value
else
kieg=kieg & elválasztó & cells(xx,1).value
endif
endif
next
end if
if kieg<>"" then cells(yy,2).value=kieg
nextA ciklusok vége az A oszlopban levő adatait mennyiségétől függ. Az elválasztó helyébe írd be azt a karaktert, amelyet elválasztóként szeretnél használni.
Ha a feltételeket megváltoztatod a makróban, akkor bármelyik cikkszám mellé tud írni bármilyen cikkszám verziót.Üdv.
-
slashing
senior tag
válasz botond187 #22788 üzenetére
hát innentől már csak annyit kell csinálni hogy d1=kezdőérték e1=végérték d2=kigyűjtés kezdő értéke e2=kigyűjtés végértéke a makróban meg ezeket a cellákat el kell nevezni és azokkal helyettesíteni.
valahogy így:
Dim k1, v1, ki1, ki2 As String
k1 = Range("D1")
v1 = Range("E1")
ki1 = Range("D2")
ki2 = Range("E2")if cells(yy,1).value>= K1 and cells(yy,1).value<= V1 then
ugyan így a másik kettőnél is.
és mondjuk a legvégén a next előtti cells(yy, 2)-t átírni mondjuk ActiveCell-re és akkor oda rakja az adatokat amelyik cellára ráállsz a makrófuttatás előtt. Esetleg még egy gombot kirakni a lapra ami indítja a makrót.
Elvileg ennek így működnie kell....
Bocs Fferi50 hogy belekondárkodtam, remélem nem haragszol meg érte.
-
Fferi50
őstag
válasz botond187 #22788 üzenetére
Szia!
Paraméterezheted is a makrót.
Csinálsz egy táblázatot, amelybe berakod egy-egy oszlopba a "főcikk" tól-ig cikkszámokat, a másik 2 oszlopba pedig a hozzátartozó "kiegészítő" cikkek tól-ig határait.
Ezután a makródnak azt kell megnéznie, hogy az adott cikkszám mely határok közé esik és onnan kivenni a hozzátartozó határértékeket.
Kicsit csúnya mert még egy for ciklus van benne, de most hirtelen nem jut jobb eszembe (pedig biztosan van).For xx= 1 to 200
cikkszam=cells(xx,1).value
kiegalso=""
kiegfelso=""
for zz=1 to főcikkfeltételszám
if cikkszam>=cells(zz,10).value and cikkszam<=cells(zz,11).value then
kiegalso=cells(zz,12).value
kiegfelso=cells(zz,13).value
exit for
endif
next
if kiegalso<>"" then
kieg=""
for yy=1 to 200
if cells(yy,1).value>=kiegalso and cells(yy,1).value<=kiegfelso then
if kieg="" then
kieg=cells(yy,1).value
else
kieg=kieg & elválasztó & cells(yy,1).value
endif
endif
next
if kieg<>"" then
cells(xx,2).value=kieg
endif
endif
nextA határokat tartalmazó táblázat a 10-12. oszlopban van. A ciklushatárokat igazítsd a feltöltött sorokhoz.
A belső yy-os ciklus elvileg indulhat xx -től egy (1) helyett, ha a kiegészítő termékek cikkszáma nagyobb, mint a főtermékeké és a cikkszámok sorba vannak rendezve. A működéshez ez nem szükséges, akkor marad az 1, mint cikluskezdő (hiszen lehet, hogy az első cikkszám nem főtermék, hanem kiegészítő).Üdv.
-
Delila_1
Topikgazda
válasz botond187 #22788 üzenetére
Egyszerűbben, és kicsit gyorsabban is meg lehet csinálni.
Kell egy segédtábla (nálam a K:M tartomány), ahol a K oszlop tartalmazza azt a szöveges formában tárolt adatot, amihez rendeljük a többit, az L és M szintén szövegesen a csatolandó min és max értékeket.Nem írtad, az Excelnek melyik verzióját használod, ezért 2003-ban írtam, azt a magasabb verziójú Excelek elfogadják, csak makróbarátként kell menteni.
A füzetet feltettem ide.
Módosítandó sorok, ha a segédtáblát máshova teszed:
1.Set sorS = Columns(11).Find(ehhez, LookIn:=xlValues)
A Columns(11) most a K oszlopra mutat, mert a K a 11. oszlop.
2.
If Mid(Cells(sorK, "A"), 3) >= Cells(sorS, "L") And _
Mid(Cells(sorK, "A"), 3) <= Cells(sorS, "M") ThenEzeknél az "L" és "M" helyett írd a saját oszlopaid betűjelét
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Fferi50
őstag
válasz botond187 #22794 üzenetére
Szia!
Tovább gondoltam a feladatod és úgy látom, a "segédtáblában" elég az egy oszlop a főtermékekre a következők szerint:
első cella értéke 0
második cella értéke a második termék alsó határa
harmadik cella értéke a harmadik termék alsó határa
Pl.Főtermék kieg alsó kieg felső
0 G-010504000 G-010504099
G-010100100 G-010504100 G-010504199
G-010100200 G-010504300 G-010504500Ekkor a makróban a kereséshez a vlookup függvényt kell használnod, így
set vankieg=application.vlookup(cells(1,1).value,segédtábla első oszlop,1,True)
if not vankieg is nothing then ' ekkor van találat
kiegalso=vankieg.offset(0,1).value
kiegfelso=vankieg.offset(0,2).value
jöhet a belső ciklus a termékkereséshez (nálam az yy-os)
endifA termék cikkszámainak és a segédtábla első oszlopának is emelkedő sorrendben kell lennie.
Az Fkeres ebben a formában azt a sort találja meg, amely még nem nagyobb a keresendő értéknél, ezért kell az első cellába 0, vagy bármilyen más - az első termékkör felső határánál kisebb!!! - érték.Üdv.
[ Szerkesztve ]
-
Delila_1
Topikgazda
válasz botond187 #22819 üzenetére
Kicsit ellentmondásos a kérdésed. Szövegben 233-at írsz, a képen 283 szerepel.
"K oszlop azon sorába írja be a 233-at, ahol az M,N,O,P,Q,R,S,T,U bármely oszlop bármely sorában szerepel szám."
Valószínű, hogy nem bármely-, hanem az azonos sorban szereplő számok esetén kell valamit a K oszlopba írni.
Erre a képlet a K1 cellában =HA(DARAB(M1:U1)>0;283;""). Ezt másolhatod a többi sorba,
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Bazsee71
őstag
válasz botond187 #22856 üzenetére
Sziasztok!
Frissítettem 2013-as verzióra, és akadt egy kis problémám.
Wordben mikor körlevelet készítek, és meg akarom nyitni az Excel adatbázisom DDE-n keresztül, akkor a következő hibaüzenetet kapom:
"A Word a feladat végrehajtásához nem tudott DDE kapcsolatot létesíteni a következővel: Microsoft Excel."
(Közben pedig megnyitja az Excel dokumentumot, aztán be is zárja.)Excelben az ignorálás kikapcsolva, fél napja a netet böngészem de még semmi, viszont a formázás miatt kell a DDE, 100 db dokumentumot kéne legenerálnom.
Segítségeteket előre is köszönöm!
Üdv:
Balázs -
Fferi50
őstag
válasz botond187 #22856 üzenetére
Szia!
Van az a feltételvizsgálat, ahol a T és U oszlophoz hasonlít a makró és ha benne van, akkor beteszi az értéket a B oszlopba.
Na ezt másold le annyiszor, ahányszor 2 oszloppal bővíted jobbra a feltételrendszert, majd cseréld ki benne a T és az U értékét /vagy oszlopszámát (most nem emlékszem végülis melyiket írta Delila és lusta voltam visszanézni, bocsi) a következő két oszlopra, ha benne van akkor fűzd hozzá az értéket a B oszlop meglevő értékéhez azzal az elválasztójellel (vessző,stb.) amivel el akarod választani egymástól.Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz botond187 #22861 üzenetére
Szia!
Amit írtam, azt ugyanabba a makróba kell beleírni, csak külön-külön sorokba, hiszen más-más a feltétel, vagyis a vizsgálat szempontja.
Ha csak egyet szeretnél, akkor az első találatot beírod a helyére és kilépsz az adott ciklusból. Majd a következő vizsgálatnál is hasonlóképpen. Ezzel a legelső találat kerül bele mindig a B oszlop cellájába. Ha mást szeretnél, akkor a találatokat is meg kell vizsgálni...,vagy előre eldöntöd, hogy hanyadik találatig menjen és akkor a találatokat kell számolni, amíg el nem érsz a kívánt értékig.Üdv.
-
Fferi50
őstag
-
Delila_1
Topikgazda
válasz botond187 #22864 üzenetére
Minden fejlesztés alapja az alapos átgondolás. Nem lehet "csak most hirtelen ezt gondoltam ki" alapból kiindulni.
Második lépés a feladat pontos megfogalmazása, és csak ezt követheti a végrehajtás, jelen esetben a program megírása.Mikor az első kettővel megvagy, tedd ki a füzetet egy elérhető helyre, hogy a programozónak ne kelljen külön az adatok kreálásával bajlódnia, hiszen Te ismered az adataidat.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Fferi50
őstag
válasz botond187 #23116 üzenetére
Szia!
Képlettel nem lehet módosítani az adott cella tartalmát, mert az körkörös hivatkozás hibát ad.
Vagy makrót írsz, vagy a mellette levő cellába beírod a következő képletet:
B1-be pl. ="XY" & A1 ahol XY a két új karakter. Ezután a cellát kijelölve másol, beilleszt értéket és ezt teszed át az eredeti cellába.Üdv.
-
Fferi50
őstag
válasz botond187 #23141 üzenetére
Szia!
Két dolog okozta a hibát:
1. Az első sortól indítottad a ciklust és így a cikkszámot is kereste, ami persze nem volt.
Ezért ezt a sort: For sor = 1 To usor át kell javítani erre: For sor = 2 To usor
2. Az A oszlopban vannak üres cellát, ami szintén hibát okoz. Vagy "eltünteted" az üres cellákat, vagy beírod a következő feltételt a makróba:
ehhez = Cells(sor, "A")
If ehhez <> "" Then
sorS = Application.Match(ehhez, Range("D:D"), 1)valamint a lezárását:
Next
End If
NextA félkövérrel szedett sorokat kell beszúrnod a másik kettő közé.
Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz botond187 #23145 üzenetére
Szia!
A makró elejére írd be egy uj sorba:
Dim szamol as integerIde szúrd be a félkövér sort:
sorS = Application.Match(ehhez, Range("D:D"), 1)
szamol = 0
For sorK = 1 To usorIde szintén:
If Cells(sorK, "A") >= tol$ And Cells(sorK, "A") <= ig$ Then
If szamol = 6 Then Exit For
If Cells(sor, "B") = "" Then
És még ide:
End If
szamol = szamol + 1
End IfÜdv.
-
Fferi50
őstag
válasz botond187 #23162 üzenetére
Szia!
Itt az egész makró, hátha elírtál valamit:
Sub kieg()
Dim sor As Long, usor As Long, sorS, sorK As Long, szamol As Integer
Dim ehhez As String, tol$, ig$
Columns(2) = ""
usor = Range("A" & Rows.Count).End(xlUp).Row: sor = 1
For sor = 2 To usor
ehhez = Cells(sor, "A")
If ehhez <> "" Then
sorS = Application.Match(ehhez, Range("D:D"), 1)
szamol = 0
For sorK = 1 To usor
tol$ = Cells(sorS, "E"): ig$ = Cells(sorS, "F")
If Cells(sorK, "A") >= tol$ And Cells(sorK, "A") <= ig$ Then
If szamol = 6 Then Exit For
If Cells(sor, "B") = "" Then
Cells(sor, "B") = Cells(sorK, "A")
Else
Cells(sor, "B") = Cells(sor, "B") & "|" & Cells(sorK, "A")
End If
szamol = szamol + 1
End If
Next
End If
Next
End SubÜdv.
-
-
Delila_1
Topikgazda
válasz botond187 #23182 üzenetére
Nem akarom átböngészni a makrókat, amit valamikor én írtam közülük, már rég elfelejtettem.
Lefuttatod a 6 makrót, ami a Module3 lapon van?
Hol jelennek meg a kiválasztott értékek, amik közül 6-ot ki kell választani?Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz botond187 #23191 üzenetére
Az volt a feladat, hogy 6 eredmény legyen a B oszlopban, lehetőleg a 6 kigyűjtésből 1-1. Ha valamelyik kigyűjtés nem ad eredményt, akkor ahelyett egy másikból írjon be eredményt.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz botond187 #23201 üzenetére
Újra felteszem. Itt találod.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz botond187 #23203 üzenetére
Nagyon változatosan fogalmazod meg, mire van szükséged.
Eddig 6 eredményt kértél, most annyit, amennyi érték van az A oszlopodban.Írd le pontosan, milyen adatokat vársz a B oszlopba.
Például az első 6 sor tevődjön össze a kigyűjtött 6 oszlop első adataiból, a következő 6 a kigyűjtések második adatából?Ne várj azonnali választ (tőlem), egy darabig nem leszek net közelében.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz botond187 #33987 üzenetére
A Sheet1 lapon a B oszlopban az adatok szöveg típusúak, a Sheet2-n viszont számként szerepelnek. Ezt úgy tudod egyszerűen ellenőrizni, hogy ráállsz az első adatra (B2), majd a Shift-et nyomva tartod, és az egérrel rendre kijelölöd az alatta lévő cellákat. Számoszlop esetén a státuszsorban változnak a Min, Max, Átlag, Összeg értékek.
A Sheet2 lapon átalakítjuk a B oszlop értékeit szöveg típusúvá a
=BAL(FIX(A2;0;1);12)
képlettel, és minden OK.Tehetnénk fordítva is, hogy a Sheet1 B oszlop értékeit konvertáljuk számokká, de
1. a fuvarlevél számával nem hajtunk végre matematikai műveleteket (telefonszám, adószám is ilyen)
2. a szöveges adatok kisebb helyet foglalnak el a memóriában, mint a számértékekProgramozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Fferi50
őstag
válasz botond187 #38338 üzenetére
Szia!
"2x4 oszlopot kapok, amiből szeretnék 1x4 oszlopot, de folytatólagosan, hogy az első 4 oszlop vége után tegye be a második 4 oszlopot."
Kijelölöd a második négy oszlopot. Kivágás. Utána az első négy oszlop végén beillesztés.Cella tartalmat az Adatok- szövegből oszlopok menüponttal tudsz szétszedni. Ott megadhatod, mi az elválasztójel.
Nem tudnál egy rövid mintát feltenni (természetesen kamu adatokkal)? Benne mutatni, hogy mit és hogyan szeretnél? Makróhoz segítene.
Üdv.
[ Szerkesztve ]
Új hozzászólás Aktív témák
- Játékkulcsok olcsón: Steam, Uplay, GoG, Origin, Xbox, PS stb.
- Steam kulcsok - UTALÁS/REVOLUT
- Bitdefender Total Security 3év/3eszköz! - "Tökéletes védelem most kedvező áron..."
- Eladó Steam kulcsok kedvező áron!
- Microsoft licencek KIVÉTELES ÁRON AZONNAL - UTALÁSSAL IS AUTOMATIKUS KÉZBESÍTÉS - Windows és Office
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Alpha Laptopszerviz Kft.
Város: Pécs