- Felháborodott az Apple, a Meta az iPhone-felhasználók üzeneteit akarja olvasni
- A luxusmárkáknak kell a bitcoin, az USA jegybankjának nem
- Letiltja az USA a politikusokat a telefonhívásokról és szöveges üzenetekről
- Nagy áttörés jön a napelemek piacán, nem kell annyi hely a paneleknek
- Belenyúlt az USA az Epic Games igazgatótanácsába, nyomoz az NVIDIA
-
IT café
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
veterán
válasz thomas50.000 #26699 üzenetére
Sajnos a színezés az Excel számára nem jelent "esemény"-t, amire egy makró reagálhatna.
Írd át a ciklus végét 100-ról annyira, ahány sort szándékozol kitölteni az A oszlopban.
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
veterán
válasz thomas50.000 #26697 üzenetére
Ez a makró az elsőtől a 100. sorig írja be a Nem szót a B-be.
Sub Piros()
Dim sor As Long
For sor = 1 To 100
If Cells(sor, "A").Interior.ColorIndex = 3 Then Cells(sor, "B") = "Nem"
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.
-
thomas50.000
csendes tag
Sub Piros()
If Cells(2301, 7).Interior.ColorIndex = 3 Then
Cells(2301, 14) = "Nem"
End If
End SubEzt a makrót találtam hozzá, ezzel csak annyi a baj, hogy csak a 2301-es sorra érvényes, nekem pedig az összes sorra kéne...
Ezt hogy kéne átírni, hogy minden sornál működjön?A válaszokat előre is köszönöm!
-
thomas50.000
csendes tag
Sziasztok!
Excelben szeretnék egy olyan dolgot csinálni, hogy ha pl. az A3-as cella színét megváltoztatom, akkor a B3-as cellába írjon be mondjuk "Nem" szöveget.
=HA(CELLA("szín"; A3) = "v";"Nem"; 0)
Ezzel próbálkoztam, de nem igazán sikerül...
Ha csak makróban megoldható, és azt valaki megcsinálná nekem az is nagy segítség lenne, mert én sajnos nem nagyon értek hozzá...
Előre is köszönöm!
-
thomas50.000
csendes tag
Sziasztok!
Excelben szeretnék egy olyan dolgot csinálni, hogy ha pl. az A3-as cella színét megváltoztatom, akkor a B3-as cellába írjon be mondjuk "Nem" szöveget.
=HA(CELLA("szín"; A3) = "v"; A3 * "Nem"; 0)
Ezzel próbálkoztam, de nem igazán sikerül...
Ha csak makróban megoldható, és azt valaki megcsinálná nekem az is nagy segítség lenne, mert én sajnos nem nagyon értek hozzá...
Előre is köszönöm!
-
-
Delila_1
veterán
válasz szami777 #26691 üzenetére
Az adatok elrendezése hibás. Nem lett volna szabad 1 cellába begyűjteni a különböző válaszokat.
Azt még megteheted, hogy a szövegből oszlopok menüponttal szétszeded a vesszővel elválasztott adatokat. A darabteli függvényben a tartományt erre a megnövekedett területre írod á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.
-
szami777
addikt
válasz Delila_1 #26690 üzenetére
Köszönöm a válaszod.
Megpróbáltam úgy, ahogy te írtad, valamennyire sikerült is, de valahogy mégse.
Itt a kép róla: [link]
Sajnos pl a tengerparti üdüléshez csak azt számolja, ahol egyedül azt a választ adták, azokat nem számolja bele, ahol több választ adtak, köztük a tengerparti üdülést is.“So do all who live to see such times but that is not for them to decide. All we have to decide is what to do with the time that is given us.”
-
szami777
addikt
válasz Fferi50 #26687 üzenetére
Bocsánat a dupláért, 1 kérdés sajnos lemaradt még.
Mi a teendő ilyenkor? [link]
Sok az egyezés és mindent külön vesz, az azonos típusokat egybe kéne számolnia, akkor is, ha egy illető több lehetőséget választott.
Tehát így kéne kinéznie: [link][ Szerkesztve ]
“So do all who live to see such times but that is not for them to decide. All we have to decide is what to do with the time that is given us.”
-
Fferi50
Topikgazda
válasz szami777 #26686 üzenetére
Szia!
Az értékek területére is be kellene vinni az egyetlen meglevő meződet (mármint az A oszlopot), úgy hogy a darabszám függvénnyel legyen összesítve. (Mivel most csak sorcimkéid vannak, hozzá tartozó adatok pedig nincsenek, ezért nem tud megjeleníteni semmit a diagram.)
Üdv.
[ Szerkesztve ]
-
szami777
addikt
Sziasztok, a segítségeteket kérném.
Kérdőíves adatokból kéne kördiagramot csináljak, de sehogy se sikerül.
Egy oszlop van, tehát nem több, 1 kérdés, amire 80 ember 6 különböző szöveges választ adott. Ezt szeretném körön ábrázolni, hogy ki melyik választ választotta, milyen arányban, de sehogy sem sikerül. Neten utánaolvastam, azt írták, hogy ezt kimutatás diagrammal kéne, de egyszerűen nem tudom megcsinálni, mert nem akar megjelenni semmiféle diagram. Valakinek van ötlete?
Lőttem egy képet róla, látható jobb oldalt, ha bepipálom kis fekete kockát jobb oldalt és behúzom a 4 közül az egyikbe, akkor se történik semmi, biztos én csinálok rosszul valamit, nem értek hozzá sajnos.
(2007-es magyar nyelvű excel)
Előre is köszönöm.[ Szerkesztve ]
“So do all who live to see such times but that is not for them to decide. All we have to decide is what to do with the time that is given us.”
-
Delila_1
veterán
Miért nem eseményvezérelten íratod be?
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
Cells(Target.Row, 5) = ThisWorkbook.BuiltinDocumentProperties("Last Author")
End If
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.
-
-
azopi74
addikt
válasz sedyke #26680 üzenetére
Azt javaslom, szerintem írd felül az üzletileg kritikus (titkos) részeket, és töltsd fel valahova a felhőbe, akkor valószínűleg tudunk segíteni. Lehetnek egész oszlopra hivatkozó függvények, telehányt Name Manager (névkezelő) , vagy akármi. Látatlanban nehéz megmondani.
-
-
sedyke
tag
Sziasztok!
Van egy excel file-om, 6.5MB az egesz.
Van benne korulbelul 10-12 munkalap, ebbol kb. 8 Pivot tabla. Nemi keplet is, de nem sok, mert miutan osszegyujtottem a szukseges adatokat, atalakitom az eredmenyt ertekke.
A problemam az, hogy a fajl nagyon belassult. A megnyitasa pl. eltart 5 percig minimum.
Van otletetek, hogy mitol lehet? Mit tudnek csinalni vele?
Az adatmennyiseg, es a tablak szama folyamatosan novekszik, igy egyre rosszabb a helyzet.Elore is koszonom a valaszokat!
-
Delila_1
veterán
válasz huliganboy #26670 üzenetére
Az időt, helyszín, stb-t egyetlen ciklusban is másolhatnád, nem kellenek külön makrók hozzá.
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
veterán
válasz huliganboy #26670 üzenetére
Ha arra gondolsz, hogy a Munka2 lap üres sorait törölnéd, akkor
Sub UresTorles()
Dim usor As Long, sor As Long
Sheets("Munka2").Select
usor = Range("B" & Rows.Count).End(xlUp).Row
For sor = usor To 3 Step -1
If Application.WorksheetFunction.CountA(Range("B" & sor & ":" & "H" & sor)) = 0 Then
Rows(sor).EntireRow.Delete
End If
Next
End SubA transzponálós makrókban a for-next ciklus for sorában a Step 2 adja meg, hogy a Munka2 lap minden második sorában lévő adatok másolódjanak át egy másik lapra. Vagy ezt a step 2-t töröld, és indíts a sortörléssel, vagy a sortörlést a transzponálások után végezd el.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
huliganboy
addikt
válasz Delila_1 #26668 üzenetére
Szia!
A pár nappal ezelőtti makrót amit készítettél az egyik barátommal továbbvittük kicsit....
A kérdése maz lenn, hogy az üres sorokat, hogyan tudnánk kiszedni.....Köszönöm!
Sub ido()
Dim sorInnen As Long, sorIde As Long, oszlop As Integer
Dim usor As Long
Sheets("Munka2").Select
sorInnen = 3: sorIde = 2: usor = Range("B" & Rows.Count).End(xlUp).Row
For sorInnen = 3 To usor Step 2
For oszlop = 2 To 8
Sheets("Munka5").Cells(sorIde, 3) = Left(Cells(sorInnen, oszlop), 5)
Sheets("Munka5").Cells(sorIde, 5) = Right(Cells(sorInnen, oszlop), 5)
sorIde = sorIde + 1
Next
Next
Sheets("Munka5").Select
Call helyszin
End Sub
Sub helyszin()
Dim sorInnen As Long, sorIde As Long, oszlop As Integer
Dim usor As Long
Sheets("Munka2").Select
sorInnen = 3: sorIde = 2: usor = Range("B" & Rows.Count).End(xlUp).Row
For sorInnen = 4 To usor Step 2
For oszlop = 2 To 8
Sheets("Munka5").Cells(sorIde, 7) = Cells(sorInnen, oszlop)
sorIde = sorIde + 1
Next
Next
Sheets("Munka5").Select
Call nap
End Sub
Sub nap()
Dim sorInnen As Long, sorIde As Long, oszlop As Integer
Dim usor As Long
Dim hossz As Long
Sheets("Munka2").Select
sorInnen = 1: sorIde = 2: usor = Range("b" & Rows.Count).End(xlUp).Row
For sorInenn = 3 To usor Step 2
For oszlop = 2 To 8
Sheets("Munka5").Cells(sorIde, 2) = Cells(sorInnen, oszlop)
Sheets("Munka5").Cells(sorIde, 4) = Cells(sorInnen, oszlop)
sorIde = sorIde + 1
Next
Next
Call edzo
End Sub
Sub edzo()
Dim sorInnen As Long, sorIde As Long, oszlop As Integer
Dim usor As Long
Sheets("Munka2").Select
sorInnen = 3: sorIde = 2: usor = Range("B" & Rows.Count).End(xlUp).Row
For sorInnen = 3 To usor Step 4
For oszlop = 1 To 1
Sheets("Munka5").Cells(sorIde, 1) = Cells(sorInnen, oszlop)
Sheets("Munka5").Cells(sorIde + 1, 1) = Cells(sorInnen, oszlop)
Sheets("Munka5").Cells(sorIde + 2, 1) = Cells(sorInnen, oszlop)
Sheets("Munka5").Cells(sorIde + 3, 1) = Cells(sorInnen, oszlop)
Sheets("Munka5").Cells(sorIde + 4, 1) = Cells(sorInnen, oszlop)
Sheets("Munka5").Cells(sorIde + 5, 1) = Cells(sorInnen, oszlop)
Sheets("Munka5").Cells(sorIde + 6, 1) = Cells(sorInnen, oszlop)
Next
For oszlop = 1 To 1
Sheets("Munka5").Cells(sorIde + 7, 1) = Cells(sorInnen, oszlop)
Sheets("Munka5").Cells(sorIde + 8, 1) = Cells(sorInnen, oszlop)
Sheets("Munka5").Cells(sorIde + 9, 1) = Cells(sorInnen, oszlop)
Sheets("Munka5").Cells(sorIde + 10, 1) = Cells(sorInnen, oszlop)
Sheets("Munka5").Cells(sorIde + 11, 1) = Cells(sorInnen, oszlop)
Sheets("Munka5").Cells(sorIde + 12, 1) = Cells(sorInnen, oszlop)
Sheets("Munka5").Cells(sorIde + 13, 1) = Cells(sorInnen, oszlop)
Next
For oszlop = 2 To 8
sorIde = sorIde + 1
Next
For oszlop = 2 To 8
sorIde = sorIde + 1
Next
Next
Call korosztaly
End Sub
Sub korosztaly()
Dim sorInnen As Long, sorIde As Long, oszlop As Integer
Dim usor As Long
Sheets("Munka2").Select
sorInnen = 3: sorIde = 2: usor = Range("B" & Rows.Count).End(xlUp).Row
For sorInnen = 5 To usor Step 4
For oszlop = 1 To 1
Sheets("Munka5").Cells(sorIde, 6) = Cells(sorInnen, oszlop)
Sheets("Munka5").Cells(sorIde + 1, 6) = Cells(sorInnen, oszlop)
Sheets("Munka5").Cells(sorIde + 2, 6) = Cells(sorInnen, oszlop)
Sheets("Munka5").Cells(sorIde + 3, 6) = Cells(sorInnen, oszlop)
Sheets("Munka5").Cells(sorIde + 4, 6) = Cells(sorInnen, oszlop)
Sheets("Munka5").Cells(sorIde + 5, 6) = Cells(sorInnen, oszlop)
Sheets("Munka5").Cells(sorIde + 6, 6) = Cells(sorInnen, oszlop)
Sheets("Munka5").Cells(sorIde + 7, 6) = Cells(sorInnen, oszlop)
Next
For oszlop = 1 To 1
Sheets("Munka5").Cells(sorIde + 7, 6) = Cells(sorInnen, oszlop)
Sheets("Munka5").Cells(sorIde + 8, 6) = Cells(sorInnen, oszlop)
Sheets("Munka5").Cells(sorIde + 9, 6) = Cells(sorInnen, oszlop)
Sheets("Munka5").Cells(sorIde + 10, 6) = Cells(sorInnen, oszlop)
Sheets("Munka5").Cells(sorIde + 11, 6) = Cells(sorInnen, oszlop)
Sheets("Munka5").Cells(sorIde + 12, 6) = Cells(sorInnen, oszlop)
Sheets("Munka5").Cells(sorIde + 13, 6) = Cells(sorInnen, oszlop)
Next
For oszlop = 2 To 8
sorIde = sorIde + 1
Next
For oszlop = 2 To 8
sorIde = sorIde + 1
Next
Next
Sheets("Munka5").Select
End Sub -
Thrawnad
senior tag
Van egy olyan problémám, hogy egy excel táblában volt egy pár feltételes formázás.
Másolgatták a cellákat ide oda, így a formázás is sokszorozódott.
Szeretném az összest kitörölni egyszerre, hogy az eredetit vissza tudjam tenni.
Van rá valami mód?Ui: Csak én lehetek ennyire béna megtaláltam közben
Thrawnad
[ Szerkesztve ]
Hardver hibára ritkán van jó szoftver...
-
Delila_1
veterán
Természetesen.
Sub Legnagyobb()
Dim sor As Long, usor As Long
usor = Range("A" & Rows.Count).End(xlUp).Row
For sor = usor To 2 Step -1
If Len(Cells(sor, 1)) = 8 Then
If Left(Cells(sor, 1), 6) = Left(Cells(sor - 1, 1), 6) Or _
Cells(sor - 1, 1) = "" Then
Rows(sor - 1).EntireRow.Delete
End If
End If
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.
-
-
azopi74
addikt
Szia.
Nem írtad milyen nyelvű excel (és milyen verzió), de angol 2010-ben és 2013-ban:
File/Options/Advanced és tedd be a pipát az "Enable fill handle and cell drag and drop "
magyarban fájl/beállítások/speciálisban keresd (kitöltőjel használatának engedélyezése)
2007-ben az office menüben van valahol.
-
zhari
csendes tag
Ebben esetleg tud valaki segíteni?
Szerintem ezekkel a sorokkal van baj:
x(i, 9) = objFolder.GetDetailsOf(objFolderItem, 9)
x(i, 10) = objFolder.GetDetailsOf(objFolderItem, 10)Lehet ezek csak korábbi Excel verzióban működnek?
AZ új már máshol tárolja szerzőt és az utolsó módosítót? -
azopi74
addikt
válasz Delila_1 #26654 üzenetére
Hehe, ez jó trükk,
Eddig mindig vagy így csináltam:=FKERES(SZÖVEG(cellahivatkozás;"#");tartomány;oszlop; tartományban_keres)
vagy fordított logikával tömbfüggvényesen így:
{=FKERES(cellahivatkozás;ÉRTÉK(tartomány);oszlop; tartományban_keres)}
De az eddig eszembe se jutott, hogy úgy alakítsam röptében szöveggé a keresett értéket, hogy egyszerűen egy üres sztringet hozzáfűzök a számhoz
-
Delila_1
veterán
Az Fferi által említett makró:
Sub Legnagyobb()
Dim sor As Long, usor As Long
usor = Range("A" & Rows.Count).End(xlUp).Row
For sor = usor To 2 Step -1
If Left(Cells(sor, 1), 6) = Left(Cells(sor - 1, 1), 6) Or _
Cells(sor - 1, 1) = "" Then
Rows(sor - 1).EntireRow.Delete
End If
Next
End SubAz első oszlopban többször szereplő programneveket gyomlálja ki.
Nem említetted, hogy vannak-e üres sorok a tartományban. Beleírtam, hogy azokat is törölje.Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
itanczos
senior tag
-
Delila_1
veterán
-
zhari
csendes tag
válasz Fferi50 #26648 üzenetére
Köszi.
Ezt találtam még a neten de nem akar működni a szerző és az tulaj bejegyzés kinyerése. Meg tudnátok nézni h mi baja lehet?
Előre is köszi
Option Explicit
Public x()
Public i As Long
Public objShell, objFolder, objFolderItem
Public FSO, oFolder, Fil
Sub MainExtractData()
Dim NewSht As Worksheet
Dim MainFolderName As String
Dim TimeLimit As Long, StartTime As Double
ReDim x(1 To 65536, 1 To 11)
Set objShell = CreateObject("Shell.Application")
TimeLimit = Application.InputBox("Please enter the maximum time that you wish this code to run for in minutes" & vbNewLine & vbNewLine & _
"Leave this at zero for unlimited runtime", "Time Check box", 0)
StartTime = Timer
Application.ScreenUpdating = False
MainFolderName = BrowseForFolder()
Set NewSht = ThisWorkbook.Sheets.Add
x(1, 1) = "Path"
x(1, 2) = "File Name"
x(1, 3) = "Last Accessed"
x(1, 4) = "Last Modified"
x(1, 5) = "Created"
x(1, 6) = "Type"
x(1, 7) = "Size"
x(1, 8) = "Owner"
x(1, 9) = "Author"
x(1, 10) = "Title"
x(1, 11) = "Comments"
i = 1
Set FSO = CreateObject("scripting.FileSystemObject")
Set oFolder = FSO.GetFolder(MainFolderName)
'error handling to stop the obscure error that occurs at time when retrieving DateLastAccessed
On Error Resume Next
For Each Fil In oFolder.Files
Set objFolder = objShell.Namespace(oFolder.Path)
Set objFolderItem = objFolder.ParseName(Fil.Name)
i = i + 1
If i Mod 20 = 0 And TimeLimit <> 0 And Timer > (TimeLimit * 60 + StartTime) Then
GoTo FastExit
End If
If i Mod 50 = 0 Then
Application.StatusBar = "Processing File " & i
DoEvents
End If
x(i, 1) = oFolder.Path
x(i, 2) = Fil.Name
x(i, 3) = Fil.DateLastAccessed
x(i, 4) = Fil.DateLastModified
x(i, 5) = Fil.DateCreated
x(i, 6) = Fil.Type
x(i, 7) = Fil.Size
x(i, 8) = objFolder.GetDetailsOf(objFolderItem, 8)
x(i, 9) = objFolder.GetDetailsOf(objFolderItem, 9)
x(i, 10) = objFolder.GetDetailsOf(objFolderItem, 10)
x(i, 11) = objFolder.GetDetailsOf(objFolderItem, 14)
Next
'Get subdirectories
If TimeLimit = 0 Then
Call RecursiveFolder(oFolder, 0)
Else
If Timer < (TimeLimit * 60 + StartTime) Then Call RecursiveFolder(oFolder, TimeLimit * 60 + StartTime)
End If
FastExit:
Range("A:K") = x
If i < 65535 Then Range(Cells(i + 1, "A"), Cells(65536, "A")).EntireRow.Delete
Range("A:K").WrapText = False
Range("A:K").EntireColumn.AutoFit
Range("1:1").Font.Bold = True
Rows("2:2").Select
ActiveWindow.FreezePanes = True
Range("a1").Activate
Set FSO = Nothing
Set objShell = Nothing
Set oFolder = Nothing
Set objFolder = Nothing
Set objFolderItem = Nothing
Set Fil = Nothing
Application.StatusBar = ""
Application.ScreenUpdating = True
End Sub
Sub RecursiveFolder(xFolder, TimeTest As Long)
Dim SubFld
For Each SubFld In xFolder.Subfolders
Set oFolder = FSO.GetFolder(SubFld)
Set objFolder = objShell.Namespace(SubFld.Path)
For Each Fil In SubFld.Files
Set objFolder = objShell.Namespace(oFolder.Path)
'Problem with objFolder at times
If Not objFolder Is Nothing Then
Set objFolderItem = objFolder.ParseName(Fil.Name)
i = i + 1
If i Mod 20 = 0 And TimeTest <> 0 And Timer > TimeTest Then
Exit Sub
End If
If i Mod 50 = 0 Then
Application.StatusBar = "Processing File " & i
DoEvents
End If
x(i, 1) = SubFld.Path
x(i, 2) = Fil.Name
x(i, 3) = Fil.DateLastAccessed
x(i, 4) = Fil.DateLastModified
x(i, 5) = Fil.DateCreated
x(i, 6) = Fil.Type
x(i, 7) = Fil.Size
x(i, 8) = objFolder.GetDetailsOf(objFolderItem, 8)
x(i, 9) = objFolder.GetDetailsOf(objFolderItem, 9)
x(i, 10) = objFolder.GetDetailsOf(objFolderItem, 10)
x(i, 11) = objFolder.GetDetailsOf(objFolderItem, 14)
Debug.Print x(i, 1), x(i, 2), x(i, 11)
Else
Debug.Print Fil.Path & " " & Fil.Name
End If
Next
Call RecursiveFolder(SubFld, TimeTest)
Next
End Sub
Function BrowseForFolder(Optional OpenAt As Variant) As Variant
'Function purpose: To Browser for a user selected folder.
'If the "OpenAt" path is provided, open the browser at that directory
'NOTE: If invalid, it will open at the Desktop level
Dim ShellApp As Object
'Create a file browser window at the default folder
Set ShellApp = CreateObject("Shell.Application"). _
BrowseForFolder(0, "Please choose a folder", 0, OpenAt)
'Set the folder to that selected. (On error in case cancelled)
On Error Resume Next
BrowseForFolder = ShellApp.self.Path
On Error GoTo 0
'Destroy the Shell Application
Set ShellApp = Nothing
'Check for invalid or non-entries and send to the Invalid error
'handler if found
'Valid selections can begin L: (where L is a letter) or
'\\ (as in \\servername\sharename. All others are invalid
Select Case Mid(BrowseForFolder, 2, 1)
Case Is = ":"
If Left(BrowseForFolder, 1) = ":" Then GoTo Invalid
Case Is = "\"
If Not Left(BrowseForFolder, 1) = "\" Then GoTo Invalid
Case Else
GoTo Invalid
End Select
Exit Function
Invalid:
'If it was determined that the selection was invalid, set to False
BrowseForFolder = False
End Function[ Szerkesztve ]
-
itanczos
senior tag
Sziasztok!
Ez nem annyira mély víz, de elakadtam.
Hogyan tudnék egy olyan táblázatban az fkeres függvénnyel keresni, ahol a kulcs mezőben a szám helyett ez van: ="szám"
???
Vagyis a 38 helyett ="38"
A fő táblázatban a kereséső mezőben viszont a szám van.Használd a keresőt! | iPhone 13 Pro 256GB | 3D: Tevo Tarantula | NAS: HP MicroServer Gen8 - Proxmox/XPenology | Okos otthon: HomesAssistant - HomeKit - Hirdetéseim (ha van): https://hardverapro.hu/aprok/hirdeto/itanczos/index.html
-
Delila_1
veterán
válasz huliganboy #26643 üzenetére
Örülök, hogy sikerült, szívesen.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
oxox
addikt
Ave Guruk!
kerdes:
raklikkelek egy cellara amiben egy olyan fuggveny van amit szeretnek lehuzni (de siman 1,2,3-al sem megy), es nem jelenik meg a cella jobb also sarkaban a kis negyzet....
hol tudom ezt visszakapcsolni?thanks
oxoxKi gépen száll fölébe.... SC2 nick: oxox character code: 698...dio3/ow: oxox#1525 + #21838
-
Fferi50
Topikgazda
Szia!
Indulj el az így rendezett listád utolsó sorától felfelé. Ez a sor megmarad, az előző sorokat addig törlöd visszafelé, amíg az első 6 karaktere ugyanaz mint a megmaradó(utolsó) soré. Ha változott az első 6 karakter, kezded újra az eljárást (az eltérő sor megmarad, a többit visszafelé törlöd, amíg másik programot nem találsz.)
Arra figyelj, hogy a sor kitörlése után az aktulális sor száma nem változik meg, de helyére bekerül az alatta levő sor, ezért mindig vissza kell lépni egyet a sorokon.
Üdv.
[ Szerkesztve ]
-
-KP-
addikt
Üdv!
kell egy listát készítenem munkahelyemen. a lényeg annyi, hogy a mainframen az összes rendszerünkön futó programról kell egy lista. ezzel semmi gond nincs. megfelelő könyvtár megfelelő állományait szövegformában ki tudom listázni. a gond annyi, hogy egy programból több verzió lehet. például ha van egy X123456 program amiből van 00, 10 meg 20-as verzió, akkor az 3 szor fog szerepelni.
Mindig 8 karakter hosszú a programnév, első hat a program, 7-8karakter jelöli a verziót.
Pl. így:
x1234504
x1234505
x1234520
x1234522
x1234525
x1234526
x1234530
x1234531
x1234533
x1234534
x1234599Itt pl. látszik hogy az x12345-ös programból 11 verzió van, 04-es az első, 99-es az utolsó.
a végső listát úgy kellene rendeznem,egyesítenem hogy egy program csak egyszer szerepeljen benne a legutolsó verzióval. tehát maradjon meg a x1234599 sor, de az előtte levő sorok nem kellenek. erre valakinek valami ötlete?
összesen több tízezer program van, tehát manuális átnyálazás kizárva
[ Szerkesztve ]
-
zhari
csendes tag
Sziasztok!
Olyan makróra lenne szükségem ami egy adott mappa (és almappái?) összes Word, Excel (és ha lehet pdf) fájljának a nevét felsorolja egy Excel oszlopban.
Közben meglett de iderakom hátha másvalaki is tudja használni:
Szép napot.
Sub ListAllFiles()
Dim fs As FileSearch, ws As Worksheet, i As Long
Set fs = Application.FileSearch
With fs
.SearchSubFolders = False ' set to true if you want sub-folders included
.FileType = msoFileTypeAllFiles 'can modify to just Excel files eg with msoFileTypeExcelWorkbooks
.LookIn = "C:\" 'modify this to where you want to serach
If .Execute > 0 Then
Set ws = Worksheets.Add
For i = 1 To .FoundFiles.Count
ws.Cells(i, 1) = .FoundFiles(i)
Next
Else
MsgBox "No files found"
End If
End With
End Sub -
Delila_1
veterán
válasz huliganboy #26640 üzenetére
A BAL(TRANSZPONÁLÁS(... képlet hibás. Ha a transzponált adatoknál az eredeti értékek bal oldali 5 karakterét akarod látni, akkor a makró
Sub Transzponalas()
Dim sorInnen As Long, sorIde As Long, oszlop As Integer
Dim usor As Long
Sheets("Munka2").Select
sorInnen = 3: sorIde = 1: usor = Range("B" & Rows.Count).End(xlUp).Row
For sorInnen = 3 To usor Step 2
For oszlop = 2 To 8
Sheets("Munka1").Cells(sorIde, 1) = Left(Cells(sorInnen, oszlop), 5)
sorIde = sorIde + 1
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.
-
Delila_1
veterán
válasz huliganboy #26640 üzenetére
Egy rövid makró gyorsan megoldja a problémát.
Sub Transzponalas()
Dim sorInnen As Long, sorIde As Long
Sheets("Munka2").Select
sorInnen = 3: sorIde = 1
Do While Cells(sorInnen, 2) <> ""
Range("B" & sorInnen & ":H" & sorInnen).Copy
Sheets("Munka1").Cells(sorIde, 1).PasteSpecial Paste:=xlPasteAll, Transpose:=True
sorInnen = sorInnen + 2
sorIde = sorIde + 7
Loop
End SubA Munka1 lapra transzponál, az első sortól kezdve. A kezdő sort a sorIde változóban módosíthatod, a lap nevét a Sheets("Munka1"). kezdetű sorban.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
huliganboy
addikt
Sziasztok!
Ezt a függvényt, hogy tudom több száz soron át ismételni, manuális bevitel nélkül?
=BAL(TRANSZPONÁLÁS(Munka2!B3:H3);5)
A Munka2 B3 és H3 oszlop adatait rakja föggőlegesen egymás alá... Minden második sorból kellene hivatkozni..... Tehát a fenti B3-H3 után B5-H5 majd B7-H7 és így tovább következik...
UI: A függvény sajnos csak crtl+shift+enter esetén tömbként működik....
Köszönöm
-
Shazam91
újonc
Sziasztok!
Nem vagyok nagy VBA expert, ezért segítségeteket kérném makróíráshoz. Adott egy Munkalap azon van egy Gomb, ez a gomb mindössze annyit csinál, hogy törli néhány általam megadott (mármint a makróban) cella értékét a munkalapon.
A problémám az, hogy ha ezt a munkalapot másolom, akkor a másolt lapon a Gomb nem működik tovább, illetve csak, akkor, ha újra hozzárendelem a makrót. Mi lehet a megoldás, hogy ezt ne kelljen minden másolás alkalmával megtenni?
(Bocsi ha kicsit szájbarágós csak az érthetőség kedvéért)
Válaszokat előre is köszi!
-
garga01
őstag
Sziasztok!
Excel 2010-ben (magyar) szeretnék diagramot ábrázolni, úgy hogy mintha egy négyzet 4 olda lenne rendre az x tengely. Lehet ilyet megvalósítani valahogy? Vagy egyszerűen a diagramot forgatni?
Valami ilyesmit szerenék:
Nincs support privátban! Írj a megfelelő topikba!
-
Fferi50
Topikgazda
válasz kőbaltazár #26636 üzenetére
Szia!
A helyi menüt is a ribbon kezeléssel tudod megváltoztatni - saját ribbon (menüszalag) hozzáadásával.
Az egyik legjobb útmutató:Az egyéni szűrés (speciális szűrés) menüpontot a Beállítások - Menüszalag testreszabása menüpontban ki tudod tenni egy általad preferált - akár mindig látható helyre.
Egyébként az Alt+G és utána Alt+C billentyűk kombinációja indítja a párbeszédpanelját (magyar nyelvű verzióban).Üdv.
-
kőbaltazár
tag
Sziasztok!
Excel 2010 ben van mód arra, hogy módosítsam a helyi menüt?
Ha nincs akkor van-e billentyűparancs az egyéni szűrés elérésére?
Köszi[ Szerkesztve ]
Üdv: Kőbaltazár
-
Delila_1
veterán
válasz samfishR #26634 üzenetére
Így írd:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then Cells(Target.Row, 2) = Date
If Target.Column = 5 Then Cells(Target.Row, 6) = Date
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
veterán
válasz samfishR #26632 üzenetére
Egy egyetlen soros makró elintézi.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then Cells(Target.Row, 2) = Date
End SubLapfülön jobb klikk, Kód megjelenítése. Bejutottál a VB szerkesztőbe. A jobb oldali nagy fehér felületre másold be a fenti makrót. A füzetedet makróbarátként kell elmentened.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
samfishR
senior tag
Sziasztok,
Olyat hogy lehet, hogy ha pl A2 cellába beírok valamit, akkor B2 cellába beírja az aznapi dátumot mikor kitöltöttem A2-t? Köszönöm előre is!!
-
itanczos
senior tag
válasz itanczos #26592 üzenetére
Srácok erre valaki? [link]
[ Szerkesztve ]
Használd a keresőt! | iPhone 13 Pro 256GB | 3D: Tevo Tarantula | NAS: HP MicroServer Gen8 - Proxmox/XPenology | Okos otthon: HomesAssistant - HomeKit - Hirdetéseim (ha van): https://hardverapro.hu/aprok/hirdeto/itanczos/index.html
-
Louro
őstag
válasz Fferi50 #26604 üzenetére
Szia,
a cellák elé beírva, hogy melyik munkalapon találhatóak, úgy Type Mismatch. Ez se jó megoldás.
Szerk.: Úgy már sikerült, hogy a külön definiált range után még odapasszintottam a .address-t.
Péntek óta ismerkedek ezzel a kiegészítéssel is. Bár ha Range-ként definiáltam, akkor ezt feleslegesnek érzem, de biztos jó okkal hozták így létre.Szóval a jó megoldás:
Külön kellett deklarálni egy változót a range-nek, majd a függvényben úgy hivatkoztam rá ,hogy variable.address[ Szerkesztve ]
Mess with the best / Die like the rest
-
Delila_1
veterán
válasz bakabaka #26626 üzenetére
B3-ra hivatkozunk a D4 cellán állva.
R1C1 hivatkozásnál ki kell írni az értékadás bal oldalára az R1C1-et.
Range("D4").FormulaR1C1 = "=R[-1]C[-2]" '– relatív hivatkozás
Range("D4").FormulaR1C1 = "=R3C[-2]" '– vegyes hivatkozás, fix sor
Range("D4").FormulaR1C1 = "=R[-1]C2" '– vegyes hivatkozás, fix oszlop
Range("D4").FormulaR1C1 = "=R3C2" '– fix hivatkozásNem R1C1 tip. hivatkozásnál elhagyható a Formula, de ki is írhatod.
Range("D4") = "=B3" '– relatív hivatkozás
Range("D4") = "=B$3" '– vegyes hivatkozás, fix sor
Range("D4") = "=$B3" '– vegyes hivatkozás, fix oszlop
Range("D4") = "=$B$3" '– fix hivatkozásEgy tartományba 1 lépésben is beírhatod a képleteket. Pl. a D4:D10-ben akarod 2-vel szorozni a B oszlop 1 sorral fentebbi értékét:
Range("D4:D10").FormulaR1C1 = "=R[-1]C2" '– vegyes hivatkozás, fix oszlop
Range("D4:D10") = "=$B3*2" '– vegyes hivatkozás, fix oszlop
Range("D4:D10") = "=B3*2" '– relatív hivatkozásÖsszegzés: R1C1 formátumnál a szögletes zárójelek között megadott érték relatív, enélkül fix hivatkozás, nem R1C1 formátumnál a $ jel rögzít.
[ 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.
-
bakabaka
csendes tag
válasz alfa20 #26625 üzenetére
Igen, kössz a segítséget, eddig én is nagyjából így gondoltam, viszont igazán biztos akkor lennék, ha megértettem, ha mind a négyféle hivatkozást rutinból tudnám kezelni. Mivel nem akarok visszaélni az időddel és a segítőkészségeddel, úgy érzem, az lenne igazán hatékony, ha két kérdésre teljesen rövid, konkrét választ kaphatnék:
1. Mi az alábbi két parancs közötti lényeges különbség, mikor melyiket használhatjuk/használjuk:
Range("D4").Formula =
Range("D4").FormulaR1C1 =2. Maradva az eredeti felállásnál, tehát D4-ben állunk, és a B3-as cellára hivatkoznánk, konkréltan milyen makróparancs hatására kerülnek bele D4-be az alábbi képletek:
=$B$3 (amennyire megértettem, ez "=R3C2)
=B3 (amennyire megértettem, ez "=R[-1]C[-2])
=B$3 (amennyire megértettem, ez "=R[-1]C2)
=$B3 (amennyire megértettem, ez "=R3C[-2])Bocsi, de azt hiszem, hogy nekem ez a dedós módszer kell ahhoz, hogy biztonsággal tudjam használni
Kálmán
-
alfa20
senior tag
válasz bakabaka #26624 üzenetére
Szia!
Először is szedjük ketté a 'R3C2'-őt.
Az első része: 'R3' = Row 3, azaz Sor 3 (magyarul: 3. sor)
A második része: 'C2' = Column 2, azaz Oszlop 2 (magyarul: 2. oszlop)
Ez a két érték adja meg a cella helyzetét, akár két koordináta érték hosszúság/szélesség csak itt sor/oszlop.
Ez a cellában a '$B$3' értéknek felel meg,Ha viszont kijelölsz egy cellát és hozzá/tőle akarsz viszonyítani, akkor az 'R' és/vagy 'C' mögé '[ ]' jelet kell tenni amiben meg tudod adni, hogy mennyi cellával odébb akarsz hivatkozni.:
tehát ha ki van jelölve a B3 cella és azt adod meg makróban, hogy: R[-1] akkor az a B3 cellától egyel feljebb levőre mutat B2, míg a R[2] a kettő sorral lentebb levőre B5.
Az oszlopnál ugyan ez a helyzet csak itt a mínusz érték C[-1] felfelé, a plusz értél C[1] lefelé.Remélem tudtam segíteni!
[ Szerkesztve ]
"Az agy olyan, mint az ejtőernyő: csak akkor működik, ha nyitott." (Thomas Dewar)
-
bakabaka
csendes tag
Sziasztok!
Sürgős makrósegítségre van szükségem, aki tud, kérem segítsen!
Olyan (online), lehetőleg magyar nyelvű leírást keresek, ahonnan még én is világosan megértem, hogy hogyan tudok egy cellában képletet megadni abszolút, relatív és vegyes hivatkozással. Eddig úgy vélem, hogy pl. ilyeneket értek:
Range("D4").Formula = "=B3*10" ez a D4-be beírja "=B3*10"-et
Range("D4").FormulaR1C1 = "=R3C2*10" ez a D4-be beírja a 3. sor 2. elemének 10-szeresét, tehát ugyanúgy "=B3*10"-et
Range("D4").FormulaR1C1 = "=R[-1]C[-2]*10" ez a D4-be beírja a tőle 1 sorral fentebb, de 2 oszloppal balra lévő cella 10-szeresét, tehát "=B3*10"-et
De mi az általános? Pl. A []-ben lévő szám mindig relatívat jelent? és hogy tudnám beírni pl. a B$3-at?
Köszönöm a tanácsokat![ Szerkesztve ]
Kálmán
-
Heno1974
csendes tag
Sziasztok!
SAP-ba szeretnék lekérdezést vba-val.
De mindig feladja az ablakot, hogy melyikbe szeretnék bejelentkezni . s nem tudom hol adjam meg neki.sapConnection.Client = "200"
sapConnection.User = ""
apConnection.Password = ""
sapConnection.Language = "hu"[ Szerkesztve ]
-
kőbaltazár
tag
válasz DeFranco #26596 üzenetére
Kedves DeFranco köszi a segítséget.
Működik de lehet, hogy valamit rosszul csinálok. A lapvédelmet nem hajlandó egyszerre feloldani. Ahogy kijelölöm a második munkalapot, a lapvédelem gombja beszürkül. Volna erre valami megoldás?
Üdv, és köszi[ Szerkesztve ]
Üdv: Kőbaltazár
-
Fferi50
Topikgazda
válasz k_miso #26619 üzenetére
Szia!
"Kézzel" egyszerűen kijelölsz egy meglevő formátumot és átírod arra a formára, amit szeretnél látni.
Makróval a numberformat tulajdonságot kell használni, ha beállítasz egy új formátumot, akkor az bekerül az egyéni formátumok közé.
Nézd meg a format függvényhez kapcsolódó magyarázatot is légy szíves.Üdv.
-
Margit néni
csendes tag
válasz Delila_1 #26612 üzenetére
Kedves Delila_1 !
Ja, igen, sűrű volt a tegnap, éjfélkor álltam neki excelezni. :-D :-D
Nagyon rendes vagy!!!
Örülök, hogy ráleltem erre a fórumra, biztosan fogok még kérdésekkel jönni, képbe kell kerülnöm excel ügyben, mert szükségem van / lesz rá. De sajnos csak alapismereteim vannak.
Szerencsére érdekel a téma, szórakoztat, jól megmozgatja az agyamat. :-)
Jó lenne úgy érteni hozzá, mint Ti páran, itt a fórumon! (Irigy vagyok ) -
Fferi50
Topikgazda
válasz k_miso #26616 üzenetére
Szia!
"Csak nem tudom, hogy hogyan lehet változót adni meg fájl névként."
Nem túl bonyolult:
dim masolt as workbook
fajlneve=forras.cells(sor,oszlop).value ' sor= az aktuális kimásolandó sor száma, oszlop= az egyedi értéket tartalmazó oszlop száma
set masolt=workbooks.add 'ennek az új munkafüzetnek az első munkalapja lesz aktív
'bemásolod a kívánt adatokat, utána
masolt.save filename:=fajlneve
masolt.closeArra viszont figyelj, hogy a fájlnévben lehetőleg ne legyenek magyar ékezetes karakterek, pontok,vesszők és egyéb olyan karakterek, amelyek "megbolondíthatják" a fájlkezelőket.
Üdv.
[ Szerkesztve ]
-
k_miso
tag
válasz Fferi50 #26615 üzenetére
Szia!
Én is valami ilyesmiben gondolkodtam. Igazából a mentési nevet nem tudtam megoldani eddig. A forrás táblában van egy olyan oszlop, ami egyedi értéket tartalmaz, alkalmas lehetne fájl névnek is. Csak nem tudom, hogy hogyan lehet változót adni meg fájl névként.
Egyébként a sorok között nincs szünet. Ha mégis lenne, gondolom le lehetne szűrni egy adott mezőre, ahol mondjuk "1" érték van a használandó rekordon.miso
miso
-
Fferi50
Topikgazda
válasz k_miso #26614 üzenetére
Szia!
Ez véleményem szerint csak makróval oldható meg.
A makró végiglépked a sorokon, létrehoz egy új excel munkalapot(vagy fájlt?), annak az első sorába bemásolja az éppen aktuális sor értékét.
Ez megy mindaddig, amíg talál az adott sorban értéket.Azért annyit jó lenne támpontként tudni, hogy
a.) az adatsorok között lehetséges-e üres sor, ha igen,akkor azzal mit kell tenni
b.) a forrás munkafüzetben kell létrehozni új munkalapokat, vagy minden sort új munkafüzetbe kell elhelyezni (erre utalt a kérdőjeles rész fentebb). Ha ez utóbbi, akkor nyilván valamilyen (milyen?) néven el is kell menteni a keletkezett munkafüzetet.A fentiek ismeretében a makró egyszerű - a makrórögzítés funkcióval megcsinálsz egy munkalapot/füzetet, majd belefoglalod egy ciklusba a létrejött makrót, hogy annyiszor fusson le, ahány sora van a forráslapnak.
Üdv.
-
k_miso
tag
Sziasztok!
Ravasz fogós kérdésem van:
Adott egy Excell tábla, amiből több Excell táblát szeretnék létrehozni automatikusan úgy, hogy a forrás táblám egy rekordjának (sorának) különböző mező (oszlop) adatai kerülnének az új Excell tábla megfelelő helyére. A forrás tábla minden rekordja létrehozna automatikusan egy új Excell táblát.
Valami olyasmit szeretnék, amit a World körlevél funkciója csinál. Itt egy World dokumentumból annyi különböző dokumentum lesz, ahány rekordja van a csatolt Excell táblának.
A módszert már láttam működni, van is olyan Excell táblám, ami így jött létre.
Remélem sikerült érthetően megfogalmaznom a bajomat.miso
miso
-
Delila_1
veterán
válasz Margit néni #26611 üzenetére
Szia Margit néni!
Könnyebb megérteni, ha a szerkesztőlécen kijelölöd a SOR()*10-1 részt, ami az INDIREKT hivatkozási sorszámát adja meg. F9-et nyomsz, és a kijelölt rész helyén megjelenik az értéke. Ez a 2. sorban 11 lesz, a 3-ban 21. Esc-pel lépj ki, másképp fixen az érték marad a cellában a kijelölt részen.
Ez a módszer minden képletre igaz, mindenhol a kijelölt rész értékét mutatja meg az F9.
Ha nem egészen tiszták a képletek, szólj, és privátban részletesen leírom.
Látom, tegnap ma feküdtél le (ha egyáltalán lefeküdtél).
Üdv, Delila
[ 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.
-
Margit néni
csendes tag
válasz Delila_1 #26608 üzenetére
Kedves Delila_1 !
Pislogok és tátogok... Zseni vagy.
Elképzelésem sincs, hogyan működnek az általad írt képletek, mi mit jelent benne... de nem nyugszom, míg rá nem jövök. Ha beledöglök is. :-)
Mert frankón működik, bizony.(Annyi, hogy az első képleted két INDIREKT-es része közé beékeltem egy &" "& -t, hogy legyen szóköz a két rész között.)
Köszönöm szépen!!!!!!!!!
-
Delila_1
veterán
válasz Margit néni #26607 üzenetére
1. Az első sorba
=INDIREKT("Munka1!A" & SOR())&INDIREKT("Munka1!B" & SOR())
1. A második sorba=INDIREKT("Munka1!A" & SOR()*10-9)&INDIREKT("Munka1!B" & SOR()*10-9)
ezt másold az alatta lévőkbe.2. Az első sorba
=Munka1!C12. A második sorba
=INDIREKT("Munka1!C" & SOR()*10-9)
innen másolhatod lefelé.Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Margit néni
csendes tag
Kiegészítés előz hsz-emhez:
A második függvénysorozatom az első sorozat melletti oszlopban halad lefelé, az elsővel párhuzamosan.
Úgy lenne a legjobb, ha a második oszlop függvényeiben szereplő C száma mindig megegyezne a szomszéd cellában lévő A és B számaival.
Azaz:
Ha első függvényben A1 és B1 van, akkor legyen a második függvényben C1
Ha első függvényben A11 és B11 van, akkor legyen a második függvényben C11
Ha első függvényben A21 és B21 van, akkor legyen a második függvényben C21 -
Margit néni
csendes tag
Sziasztok, gondban vagyok, nagyon megköszönöm, ha segít valaki!
A következő függvény-sorozatokat kellene pár lépésből megcsinálnom.
Celláról-cellára, lefelé haladva az oszlopban.
Lehúzással nem megy, erre már rájöttem...=ÖSSZEFŰZ(Munka1!A1;" ";Munka1!B1)
=ÖSSZEFŰZ(Munka1!A11;" ";Munka1!B11)
=ÖSSZEFŰZ(Munka1!A21;" ";Munka1!B21)
=ÖSSZEFŰZ(Munka1!A31;" ";Munka1!B31)
... s így tovább, az oszlop aljáig
A képletben szereplő A és B értékek minden egyes sorban 10-zel nőnek az előző sorhoz képest.Másik sorozat, ugyanez a szisztéma, csak más a függvény:
=Munka1C1
=Munka1C11
=Munka1C21
=Munka1C31
... ezt is a végtelenségig kéne (azaz az oszlop aljáig)Hogyan?
-
Fferi50
Topikgazda
válasz ritterkrisz #26603 üzenetére
Szia!
Használd az Fkeres (Vlookup), vagy az Index függvényt az azonosak megtalálásához a másik lapon.
Üdv.
-
Fferi50
Topikgazda
Szia!
Próbáld így:
Worksheets("Monthly").Range(Worksheets("Monthly").Cells(2, REPORT_YEAR - 12),Worksheets("Monthly"). Cells(15, REPORT_YEAR))
Akkor ugyanis, ha nem írod be a "teljes címet", az aktív lapról veszi az információkat a program.
(Ilyeneket én is szívtam párszor...)A második eset azért hibás szerintem, mert nem deklaráltad előtte a TestRange változódat, ezért az variant típusú és nem range (bár range az amit hozzárendeltél).
Üdv.
[ Szerkesztve ]
-
ritterkrisz
tag
-
Louro
őstag
Ájjáj, nem bírok rájönni a megoldásra, így hát a jól bevált helyhez fordulok.
A képlet:
Range("AF5:AH5").Formula = "=IFERROR(HLOOKUP(AF2," & Worksheets("Monthly").Range(Cells(2, REPORT_YEAR - 12), Cells(15, REPORT_YEAR))& ",13,0),"""")"Annyit csinálna, hogy az AF5:AH5-be beilleszti a képletet, ami hiba esetén üresen hagyja a mezőt. Eredmény esetén egy másik munkalapról venné a keresett adatot.
Ha Range helyett beírom azt, hogy Monthly!$Y$2:$AJ$23, akkor lefut. De szeretném hosszabb távon alkalmassá tenné a függvényt.
Próbáltam úgy is, hogy előtte átváltottam a Monthly lapra, majd
Set TestRange = Range(Cells(2, REPORT_YEAR - 12), Cells(15, REPORT_YEAR))Range("AF5:AH5").Formula = "=IFERROR(HLOOKUP(AF2," & TestRange & ",13,0),"""")"
De így se megy Második esetben ráadásul Type Mismatch. Pedig a TestRange is Range típusú.
Javaslat, ötlet, megoldás?
[ Szerkesztve ]
Mess with the best / Die like the rest
Új hozzászólás Aktív témák
- Autós topik
- Philips LCD és LED TV-k
- Kuponkunyeráló
- iOS alkalmazások
- Honor Magic6 Pro - kör közepén számok
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- AMD Navi Radeon™ RX 7xxx sorozat
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- iPhone topik
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- További aktív témák...
- Indiana Jones and the Great Circle - Digital Premium Edition - beváltás: 2025.1.30 - RTX 40XX
- Karácsonyi akció: ESET termékek hivatalos forgalmazója / NOD32 / Internet Security / stb.
- NORTON 360 for Mobile! 1 eszköz, 1 év! DOBOZOS, BONTATLAN!
- Eladó Steam kulcsok kedvező áron!
- Számlás!Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest