Hirdetés
- Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- GPU-k mindörökké - a kezdetek?
- Szólánc.
- Fűzzük össze a szavakat :)
- Milyen mosógépet vegyek?
- Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- Asszociációs játék. :)
- Öregszem
- Nagy "hülyétkapokazapróktól" topik
- Ingyen kellene, de tegnapra
-
LOGOUT.hu
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
-
m.zmrzlina
senior tag
válasz Sziszmisz #13878 üzenetére
A sor és oszlopazonosítók ugyan nem látszanak a képen de tegyük fel, hogy a Terméktípus a C oszlopban van és a következő üres oszlop a G valamint az első zöld cella B3
Ez esetben a G4 képlete:
=C4 & " " & $B$3
Ezt le tudod másolni ameddig szükséges (a következő zöld sorig) majd kijelölöd G4-G12-ig és csak az értéket beilleszted a C oszlopba.
-
m.zmrzlina
senior tag
válasz Sziszmisz #13878 üzenetére
Kicsit gyorsabb megoldás, ha bemásolod új modulba a következő makrót:
Sub hozzafuz()
For Each cella In Selection.Cells
cella.Value = cella.Value & " " & ActiveCell.Offset(-1, -1).Value
Next
End SubKijelölöd azt a tartományt amelynek minden eleméhez hozzá szeretnéd fűzni a leírást majd elindítod a makrót. Az ActiveCell.Offset(-1, -1) határozza meg, hogy a kijelölés legfelső cellájához képest (jó esetben ez az aktív cella) hol helyezkedik el az a cella aminek a tartalmát minden kijelölt cella tartalmához hozzá kell fűzni. A példabeli esetben 1 sorral felette és tőle egy oszloppal balra.
Kérdés: Minden termékcsoport (zöld cellák közti tartomány) pontosan 9 elemből áll mint a példában van?
[ Szerkesztve ]
-
#90999040
törölt tag
válasz Sziszmisz #13881 üzenetére
Ezt próbáld ki. De először ne élesben!!!
Sub Modosit()
Application.ScreenUpdating = False
szin = ActiveCell.CurrentRegion.Cells(2, 1).Interior.Color
For Each r In ActiveCell.CurrentRegion.Offset(0, 1).Resize(columnsize:=1)
If r.Interior.Color = szin Then
s = Cells(r.Row, r.Column - 1).Value
Else
r.Value = r.Value & " " & s
End If
Next
Application.ScreenUpdating = True
End SubElindításkor bármelyik cella ki lehet jelölve, csak az a fontos, hogy az adattáblán belül legyen a kijelölés.
-
#90999040
törölt tag
válasz Sziszmisz #13891 üzenetére
Igazából a tartomány bárhol lehet, a lényeg:
1: az a munkalap legyen kijelölve, ahol az adatok vannak
2: a kijelölt cella a tartományon belül legyen
3: az előbb említett elrendezés legyen. tehát:
ha pl. a sarokcella : B2(ennek színezetlennek kell lennie!!!), akkor az első színezett cella a B3-ban legyen, és a C oszlopot kell módosítani. Most látom, a sorszámozás oszlopát nem vettem figyelembe. Ez a sorszámozás a táblához tartozik?Egyébként, amik színezve vannak, azok a cellák egyesítettek az eredeti verzióban?
[ Szerkesztve ]
-
#90999040
törölt tag
válasz Sziszmisz #13895 üzenetére
Akkor nézd meg ezt. Ebben már benne van a sorszámozás oszlopa is, valamint itt már nem a színezés számít, hanem, hogy üres-e a Terméktípus oszlpa.
Sub Modosit()
Application.ScreenUpdating = False
For Each r In ActiveCell.CurrentRegion.Offset(0, 2).Resize(columnsize:=1)
If r.Value = "" Then
s = Cells(r.Row, r.Column - 1).Value
Else
r.Value = r.Value & " " & s
End If
Next
Application.ScreenUpdating = True
End Sub[ Szerkesztve ]
-
#90999040
törölt tag
válasz Sziszmisz #13898 üzenetére
Ha a cikkszám az A oszlopban van, akkor igen.
If r.Value = "" Then -> itt vizsgálom, hogy a B oszlopban a cella üres-e.
Ha egy ilyen üres cellát talál a B oszlopban, akkor annak értékét eltárolja, és egészen addig ezt az értéket adja hozzá a B oszlop nem üres celláihoz, amíg a B oszlopban ismét nem talál üres cellát, akkor ezt tárolja el, és így tovább.
A táblázatnak nem szükséges az A1-ben kezdődnie, kezdődhet akár a D11-ben is....
Az elejére pedig így tudod hozzáfűzni:
r.Value = s & " " & r.Value[ Szerkesztve ]
-
félisten
-
félisten
válasz Sziszmisz #14133 üzenetére
W1 cella képlete
=FKERES(V1;AA:AC;3)
Ezt követően W1 cellát egérrel lemásolod ameddig szükséges.
(természetesen a W oszlopot is Pénznemre kell formázni, AC oszlopban használt formátumra)[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
Delila_1
veterán
válasz Sziszmisz #15367 üzenetére
Egy rövid makróval megoldhatod.
Sub Szetvalaszt()
Dim sor%, szin$, vesszo%
sor% = 2
Do While Cells(sor%, 1) > ""
szin$ = Cells(sor%, 4)
vesszo = InStr(szin$, ",")
If vesszo Then
Range("A" & sor% + 1).EntireRow.Insert
Range(Cells(sor%, 1), Cells(sor%, 3)).Copy Cells(sor% + 1, 1)
Cells(sor%, 4) = Left(szin$, vesszo - 1)
Cells(sor% + 1, 4) = Right(szin$, Len(szin$) - vesszo - 1)
End If
sor% = sor% + 1
Loop
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 Sziszmisz #15384 üzenetére
Ezért érdemes azonnal az adatok pontos helyét megadni. Az eredeti kérdésben 4 oszlop szerepelt, ahol a szétválasztandó színek a D oszlopban voltak. Így most kétszer kellett megírni a makrót.
Sub Szetvalaszt()
Dim sor%, szin$, vesszo%
sor% = 2
Do While Cells(sor%, 1) > ""
szin$ = Cells(sor%, 13)
vesszo = InStr(szin$, ",")
If vesszo Then
Range("A" & sor% + 1).EntireRow.Insert
Range(Cells(sor%, 1), Cells(sor%, 12)).Copy Cells(sor% + 1, 1)
Range(Cells(sor%, 14), Cells(sor%, 16)).Copy Cells(sor% + 1, 14)
Cells(sor%, 13) = Left(szin$, vesszo - 1)
Cells(sor% + 1, 13) = Right(szin$, Len(szin$) - vesszo - 1)
End If
sor% = sor% + 1
Loop
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 Sziszmisz #16556 üzenetére
Nem biztos, hogy jól értem a feladatot, mert elég rossz példát adtál meg a csatolt képen.
Jobb lett volna, ha a címsor Alma, Kék, Jobb, Egyéb, ill. Körte, Piros, Bal, Egyéb. A képen az O:R tartomány minden tételnél azonos.
Gondolom, a sorok O:R tartományában azt kell feltüntetni, hogy az egyes tételek melyik címsor alá tartoznak. A lenti makró ezt oldja meg.Sub Katalogus()
Dim sor As Integer, usor As Integer, sor1 As Integer
usor = Cells(Rows.Count, "A").End(xlUp).Row
For sor = usor To 1 Step -1
If Cells(sor, "A") = "" Then GoTo Tovabb
If Cells(sor, "A") = "+" Then
sor1 = sor
Do While Cells(sor1, "A") = "+"
sor1 = sor1 - 1
Loop
Cells(sor, "O") = Cells(sor1, "A")
Cells(sor, "P") = Cells(sor1, "B")
Cells(sor, "Q") = Cells(sor1, "C")
Cells(sor, "R") = Cells(sor1, "D")
End If
Tovabb:
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 Sziszmisz #18337 üzenetére
Egyszerűbben is megadhatod a cellák értékét, formázását.
Range("A1")="név"
Range("B1")="megnevezés"With Range("A1:G2").Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End WithRange("C1").Font.Underline = xlUnderlineStyleSingle
[ 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.
-
Delila_1
veterán
válasz Sziszmisz #18340 üzenetére
Igen, látszik is a rögzítés, ami elég sok felesleges dolgot rak be.
A Pöttyöslabda.xls fájl Munka1 nevű lapján lévő A1 cella értékét így teheted be az aktív füzet, aktív lap B2 cellájába:
Range("B2") = Workbooks("Pöttyöslabda.xls").Sheets("Munka1").Range("A1")
Ha sokszor hivatkozol a Pöttyöslabda füzet celláira, érdemes változót felvenni hozzá.
Dim WS As Worksheet
Set WS = Workbook("Pöttyöslabda.xls").Sheets("Munka1")Ha ezt megtetted, akkor az értékadás:
Range("B2") = WS.Range("A1")Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
veterán
válasz Sziszmisz #18345 üzenetére
Nem látok hibát benne. Neked is azt javaslom, hogy kapcsold be a bővítménykezelőben az Analysis ToolPak, és Analysis ToolPak - VBA nevű bővítményeket.
Azért a With – End With közé csak beírtad azokat a paramétereket, amiket nem szükséges megadni, mivel standard értékek. Egyedül a Color tér el az alapértéktől.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Sziszmisz
csendes tag
válasz Sziszmisz #19686 üzenetére
A----------------------------B-------------C------------------------------- D
1. alma ---------------------------------piros-zöld------------------- paprika-körte
2. paprika ------------------------------sárga-zöld-piros---------- alma-körte
3. körte ---------------------------------zöld ---------------------------alma-paprika
4. labda --------------------------------csíkos-pöttyös-tarka ----terítő-asztal
5. terítő ---------------------------------tarka--------------------------- labda
6. golfütő------------------------------- fehér--------------------------------------------
7. asztal-------------------------------- fa-fém-csíkos--------------labda
Új hozzászólás Aktív témák
Hirdetés
- A fociról könnyedén, egy baráti társaságban
- Black Friday november 29. / Cyber Monday december 2.
- Kerékpárosok, bringások ide!
- S.T.A.L.K.E.R. 2: Heart of Chornobyl
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Mesterséges intelligencia topik
- Az USA is versenyellenesség miatt készül vizsgálni a Microsoft felhőjét
- Poco X6 Pro - ötös alá
- BestBuy topik
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- További aktív témák...
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: HC Pointer Kft.
Város: Pécs