-
Fototrend
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
-
-
tgumis
tag
válasz Fferi50 #42403 üzenetére
hála és köszönet
nagyon sokat segítettél. Már csak a visszatérést a célfüzetbe kell megoldanom valahogy. Ugye ott rontottam el hogy csak benne hagytam a Windows résztSub AnyagbizAdatokAutomatikusBetolteseII()
'
' AnyagbizAdatokAutomatikusBetoltese Makró
'
'
Set celfuzet = ActiveWorkbook '(mivel megnyitás után az új füzet lesz aktív)
Windows("AnyagbizAdatok.XLSX").Activate
Range(Range("A2"), Range("K2").End(xlDown)).Copy Destination:=celfuzet.Sheets("anyagbiz_lista").Range("Anyagbiz[Anyagbiz-szám]")
End Sub -
ny.janos
tag
Szia!
Azért néz ki nálad másként, mert a címsorodat nem jelölted ki, mielőtt táblázattá alakítottad a tartományt. Alakítsd vissza tartománnyá (menüsor tervezés füle /akkor aktív, ha a táblázatodba beleállsz valahova/, átalakítás tartománnyá).
Jelöld ki újra az adataidat (címsorral együtt) majd a formázás táblázatként neked tetsző stílusának kiválasztása után figyelj arra, hogy a felugró ablakban a Táblázat rovatfejekkel checkbox be legyen jelölve. -
ny.janos
tag
válasz CoolBoy323 #42397 üzenetére
Szia!
Fferi50 által javasolt INDEX - HOL.VAN függvénypárost az OSZLOP vagy OSZLOPOK függvénnyel kiegészítve a következők szerint használva (ha jól értettem a feladatot) egyetlen képlet a kívánt eredményt adja.
Az alábbi példában az adatok a Rendelesek munkalapon találhatóak.
A példád szerint a 4. oszlopban található értékre (a példámban a rendelés száma) keresünk és valamennyi oszlop adatát eredményül kívánjuk látni a keresési érték sorában, a keresési érték mögött. (Keresett értéket az A oszlop tartalmazza, B oszloptól az eredmények találhatóak.)
B2 cella képlete:
=INDEX(Rendelesek!$A$1:$I$21;HOL.VAN($A2;Rendelesek!$D$1:$D$21;0);OSZLOP(B$1)-1)
Ha a keresésnél még sincs szükséged minden oszlop eredményére, csak azok közül párra, akkor a fejléc sort azonosan elnevezve az alábbi általános képletet használhatod:=INDEX(Rendelesek!$A$1:$I$21;HOL.VAN($A2;Rendelesek!$D$1:$D$21;0);HOL.VAN(B$1;Rendelesek!$A$1:$I$1;0))
[ Szerkesztve ]
-
Fferi50
őstag
válasz tgumis #42405 üzenetére
Szia!
Ha a "célfüzetben" szeretnél tovább dolgozni, akkor más megoldást célszerű alkalmazni.
A forrás munkalapodat is hozzárendelheted egy változóhoz a cél megnyitása előtt (ez fontos, előtte), utána a másolás miatt nem kell megváltoztatni az aktív munkafüzetet.
Pl.Dim forras as WorkSheet
Set forras=ActiveSheet
---ide jön a célfüzet megnyitása
Set celfuzet=ActiveWorkbook
forras.Range(Range("A2"), Range("K2").End(xlDown)).Copy Destination:=celfuzet.Sheets("anyagbiz_lista").Range("Anyagbiz[Anyagbiz-szám]")
Mivel nem változtattuk meg az aktív munkafüzetet, a másolás után is a celfuzet marad aktív.Az aktív munkafüzet megváltoztatása nélkül lehet műveleteket végezni, ha a munkafüzeteket/munkalapokat változóhoz rendeljük és a makróban a változókat használjuk hivatkozásként.
Üdv.
-
dellfanboy
senior tag
tudnatok segiteni hogy tudnek egy YTD formulat kesziteni?
[kép]
azt szeretnem hogy AZ5 cellaban attol fuggoen hogy milyen honap van kijelolve a piros mezoben az addigi YTD sum erteket mutassa. azaz jelenlegi feltetelek mellett 5488. ki gugliztam mar egy offset-es ytd formulat, ami lepesenkent mukodik, csak a vegen nekem 0-ra fut ahelyett, hogy szummazna amire szuksegem van [link]vagy esetleg van mas otlet, hogy tudnek az adorr parameterek mellett konnyen egy YTD erteket szamolni azt megkoszonnem
eladó dolgok:mondd az árát és vidd http://hardverapro.hu/tag/dellfanboy#aprohirdetesei
-
Fferi50
őstag
válasz dellfanboy #42411 üzenetére
Szia!
Szerintem felcserélted az offset-nél a magasság és a szélesség számát. Az 1 legyen a magasság (ami az új sorok számát jelenti) és a Match képlet a szélesség (ami az oszlopok számát jelenti).Üdv.
-
Mutt
aktív tag
válasz dellfanboy #42411 üzenetére
Szia,
Mivel neked vízszintesen vannak az adataid ez a képlet kell:
=SUM(OFFSET(AH5,0,0,1,MATCH(AZ2,$AH$4:$AT$4,0)))
Volatile függvény nélkül pedig a SUMIF-et tudom javasolni:
=SUMIF($AH$4:$AT$4,"<="&$AZ$2,AH5:AT5)
üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
dellfanboy
senior tag
muxik
koszi mindenkinek
(nem vagyok meg eleg jartas az offset-fv-ben (se))eladó dolgok:mondd az árát és vidd http://hardverapro.hu/tag/dellfanboy#aprohirdetesei
-
PeLa87
aktív tag
Sziasztok!
Van egy táblázatom, ami a következő képen néz ki:
A oszlop: hányszor szavazott
B oszlop: összes résztvevő (200 sorral)
C oszlop: 2-x sorig (x mindig változik, hogy hány sor, nem mindig szavaz mindenki)
D oszlop: 2-x sorig
.
.
.
AD oszlop: 2-x sorigA oszlopban szeretném összesíteni, hogy hányszor szavazott. Ezt a DARABTELI függvénnyel számoltatom ki (ezt a megoldás találtam), de lehet nem jól írom be a képletet, mert valahol jól számolja össze a neveket, valahol nem... A nevek mindig pontosan ugyan úgy vannak. Nincs elírva.
A képlet így néz ki: =DARABTELI($C$2:$AD$200;B2)
Előre is köszönöm a segítségeket!
Megbízható és olcsó tárhely: https://cweb.hu/ugyfeladmin/aff.php?aff=99
-
ny.janos
tag
Szia!
Ha ez excel által nem értelmezhető negatív időértékkel további számítást végeznél, ahol a végeredményed biztosan pozitív, akkor megteheted azt, hogy negatív időérték helyett negatív törtet írsz be értékként.
(Az excelben az időérték tulajdonképpen szerves része a dátumnak. Szerintem a legkönnyebb úgy megérteni a működést, ha beírsz egy számot valamely cellába majd azt dátum és időértékként formázod. Pl. a 0 1900.01.00. 00:00:00-t jelent,
az 1 1900.01.01. 00:00:00-t,
a 0,5 pedig 1900.01.00. 12:00:00-t.
Ha összeadsz 3-szor 12:00-t, az 1900.01.01 12:00, vagy 1,5.)Éppen ezért az:
1 órát 1/24-ként
1 percet 1/1440-ként (24x60)
1 másodpercet 1/86400-ként (24x60x60) is megadhatod.
Mivel a tört értelemszerűen lehet negatív, így tudsz kvázi negatív idővel számolni. De csak akkor, ha a végeredményed biztosan pozitív lesz. -
szőröscica
addikt
Sziasztok!
Lenne egy makro hibam, ami csak egyetlen szamitogepen jelentkezik, es keptelen vagyok rajonni, hogy hol akadunk el vele:
Private Sub download_template(saveto, URL)
'Construct multipart/form-data string
xmlString = ""
xmlString = xmlString & "--" & boundary & vbNewLine & "Content-Disposition: form-data; name=""USERNAME""" & vbNewLine & vbNewLine & username & vbNewLine
xmlString = xmlString & "--" & boundary & vbNewLine & "Content-Disposition: form-data; name=""PASSWORD""" & vbNewLine & vbNewLine & password & vbNewLine
xmlString = xmlString & "--" & boundary & "--"
'Create objects, set variables (response is binary)
Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP")
Set mStream = CreateObject("ADODB.Stream")
If mStream.State = adStateClosed Then
mStream.Open
End If
mStream.Type = adTypeBinary
mStream.Position = 0
mStream.SetEOS
With objXMLHTTP
.Open "POST", URL, False
.setRequestHeader "Content-Type", "multipart/form-data; boundary=" & boundary
.send (xmlString) 'Your multipart post URL
mStream.Write objXMLHTTP.responseBody
mStream.SaveToFile saveto, adSaveCreateOverWrite
mStream.Close
Set mStream = Nothing
End With
End SubA .send (xmlString) reszen fut hibara, Run-time error '-2146697208 (800c0008)':
The download of the specified resource has failed hibauzenettel.Amit megprobaltam, az az, hogy a Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP") reszt atirtam Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP.3.0")-ra, de nem segitetet, ugyanott szallt el.
A projekthez szukseges reference libraryk be vannak kapcsolva, hisz maskepp a tobbi szamitogepen sem mukodnenek. Lattok barmi egyertelmu hibat a kodban, ami ezt okozhatja? Vagy valami gaz van a szamitogeppel? Lehet serult valami fajl?
Koszi a tippeket.
Udv,
Balazs -
KMan
őstag
Olyat lehet csinálni, hogy egy munkafüzetnek a munkalapjai más és más munkafüzet lapjaira mutatnak? Tehát mindig amikor megnyitom a doksit "betölti" máshonnan a munkalapokat?
Csak a balekok alszanak [SAS]
-
Soulfly842
addikt
Halihó!
Olyanra van lehetőség, hogy egy adott oszlopban csak a páratlan cellákat jelöljem ki valahogy automatizáltan?
Irányított kijelölés több hasonlót megoldott (tömeges objektum kijelölés, üres cellák töltése, stb), de erre nem találtam funkciót
Elég nagy adatbázissal dolgozok, s megkönnyítené a munkámat
-
ny.janos
tag
válasz Soulfly842 #42429 üzenetére
Szia!
Tegyél feltételes formázást a páratlan sorokra az alábbi képlettel:
=PÁRATLANE(SOR(A1))
Ha kijelölöd a teljes oszlopot, majd szűrsz a feltételes formázás alapján, akkor már használhatod az irányított kijelölés csak a látható cellák opcióját.
[ Szerkesztve ]
-
sztanozs
veterán
válasz szőröscica #42427 üzenetére
1) nem látom, hogy a boundary definiálva lenne
2) nem xml adat amit átadsz (nem beszédes a változónév)
3) nincsenek definiálva a változók
Nem bonyolítod el ezt egy kicsit?Én így küldök GET/POST ützenetet:
Public Function CMD_ServiceXML(ByRef Vars As Variant, Query As String, Optional Method As String = "GET") As Object
Dim strResponse As String
Dim objHTTP As Object
Set objHTTP = CreateObject("Microsoft.XMLHTTP")
If IsArray(Vars) Then
Dim var, vx
vx = 0
For Each var In Vars
Query = Replace(Query, "{" & vx & "}", URLEncode(CStr(var)))
vx = vx + 1
Next
Else
Query = Replace(Query, "{0}", UCase(Vars))
End If
If UCase(Method) = "GET" Then
objHTTP.Open "GET", Query, False
objHTTP.Send
ElseIf UCase(Method) = "POST" Then
Dim URI
URI = Split(Query, "?")
objHTTP.Open "GET", URI(0), False
objHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objHTTP.Send URI(1)
Else
Set CMD_ServiceXML = Nothing
End If
If objHTTP.statusText = "OK" Then
strResponse = objHTTP.ResponseText
Set objHTTP = Nothing
Else
Set CMD_ServiceXML = Nothing
Set objHTTP = Nothing
Exit Function
End If
Set CMD_ServiceXML = CreateObject("Msxml2.DOMDocument.3.0") ''// Using MSXML 3.0
On Error Resume Next
CMD_ServiceXML.LoadXML strResponse
If err Then
Debug.Print "<CMD XML>", Vars, strResponse
err.Clear
Set CMD_ServiceXML = Nothing
End If
On Error GoTo 0
End Function[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
sztanozs
veterán
válasz szőröscica #42433 üzenetére
Bár nem szorosan a témához tartozik, de célszerű minden változót lokálisan kezelni és ha kell, a függvénynek átadni. A másik pedig az
Option Explicit
használata. Ez megakadályozza a definiálatlan változók használatát, ami szintén gyakori problémaforrás.Szvsz egyébként az lehet a gond (nem látom a konkrét lekérést), hogy az
MSXML2.XMLHTTP
nem kezeli jól a certificate hibákat és az adott gép valamiért nem tudja leellenőrizni az oldal tanúsítványát.
Célszerű leellenőrizni a certificate store-t a gépen, vagyMSXML2.XMLHTTP
helyettMsxml2.ServerXMLHTTP.6.0
-t használni (ezzel viszont neked kell feldolgoznod a header-t és kezelni a cookie-kat): [link]JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
Delila_1
Topikgazda
válasz Nagyzoli27 #42432 üzenetére
Egy rövid makróval megoldható.
Sub Kapcsolodo()
Dim sor1 As Integer, sor2 As Integer, usor1 As Integer, usor2 As Integer
usor1 = Range("A" & Rows.Count).End(xlUp).Row
usor2 = Range("D" & Rows.Count).End(xlUp).Row
For sor2 = 2 To usor2
For sor1 = 2 To usor1
If Cells(sor2, "D") = Cells(sor1, 1) Then
If Cells(sor2, 5) = "" Then
Cells(sor2, 5) = Cells(sor1, 2)
Else
Cells(sor2, 5) = Cells(sor2, 5) & " | " & Cells(sor1, 2)
End If
End If
Next
Next
End SubProgramozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Mutt
aktív tag
válasz Nagyzoli27 #42432 üzenetére
Szia,
Makró nélkül az Excel 2010-től elérhető Power Query-t tudom javasolni.
Ebben a hozzászólásban látod a lépéseket (a 7-10-es lépések neked nem kellenek).üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
Delila_1
Topikgazda
válasz Nagyzoli27 #42437 üzenetére
Módosítottam a makrón. A sok sorod miatt a változókat Long típusúnak kellett megadni, és azt nem írtad, hogy az első táblázatban vannak tételek, amikhez nem tartozik kapcsolódó ID.
Működik a makró, de nagyon sokáig fut. Érdemes megnézned Mutt ajánlatát.
Azért bemásolom ide a makrót. Kibővítettem azzal, hogy az A oszlop tartalmát átmásolja a D oszlopba, majd eltávolítja az ismétlődéseket. A makrót tartalmazó fájlt makróbarátként kell elmenteni.Sub Kapcsolodo()
Dim sor1 As Long, sor2 As Long, usor1 As Long, usor2 As Long
Columns("A:A").Copy Range("D1")
Columns("D:D").RemoveDuplicates Columns:=1, Header:=xlYes
Range("B1").Copy Range("E1")
usor1 = Range("A1").End(xlDown).Row
usor2 = Range("D1").End(xlDown).Row
For sor2 = 2 To usor2
For sor1 = 2 To usor1
If Cells(sor1, 2) <> "" Then
If Cells(sor2, 4) = Cells(sor1, 1) Then
If Cells(sor2, 5) = "" Then
Cells(sor2, 5) = Cells(sor1, 2)
Else
Cells(sor2, 5) = Cells(sor2, 5) & "|" & Cells(sor1, 2)
End If
End If
End If
Next
Next
MsgBox "Kész van", vbInformation, "Értesítés"
End SubProgramozó: 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 Nagyzoli27 #42437 üzenetére
Lehet, hogy csak egyszer lesz szükséged a makró eredményére. Itt van.
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 Nagyzoli27 #42440 üzenetére
Próbáld Itt.
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 Nagyzoli27 #42443 üzenetére
Mert annyi adat van a 2. táblában, ahol az első duplikációi nem szerepelnek.
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 Nagyzoli27 #42445 üzenetére
Ez ugyanaz, mint az előző. Ebbe a füzetben is indíthatod a makró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.
-
sztanozs
veterán
válasz szőröscica #42441 üzenetére
Próbáld meg az adott gépen IE-ben megnyitni a linket, és ha nem nyílik, vagy cert hiba van, akkor látni fogod.
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
Delila_1
Topikgazda
válasz Nagyzoli27 #42448 üzenetére
Megnyitod mindkét füzetet, a cross.xlsx-re állsz, majd indítod a makró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.
-
Delila_1
Topikgazda
válasz Nagyzoli27 #42448 üzenetére
Feltöltöttem
Nagyon sok volt a B oszlop üres cellája. Azzal kellett volna kezdenem, hogy az ezekhez tartozó ID-ket ki kellett volna törölnöm a D oszlopból a DARABTELI függvény segítségével.[ 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.
Új hozzászólás Aktív témák
- Háztartási gépek
- TCL LCD és LED TV-k
- Kerékpárosok, bringások ide!
- HBO Max & OD topic
- Otthoni hálózat és internet megosztás
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Bambu Lab X1/X1C, P1P-P1S és A1 mini tulajok
- OpenMediaVault
- Amazon Fire TV stick/box
- További aktív témák...