Kolozzeum Forum - Sveriges största träningsforum
Gå tillbaka   Kolozzeum Forum - Sveriges största träningsforum > Träning > Allmänt Forum

Svara
 
Ämnesverktyg Visningsalternativ
Gammal 2015-09-19, 10:39   #46
Jockefoten
Registered User
 
Jockefotens avatar
 
Reg.datum: Dec 2008
Inlägg: 442
Någon av er som vet hur man sätter en range så den aktiverar alla "aktiva" celler?

Ju nu har jag ett makro som färgar tomma celler och jag vill kunna applicera makrot på ett ständigt ökande dokument med data.

Så här ser det ut idag, men eftersom A-AB ständigt ökar med data så behöver jag ju en annan "range".
Kod:
Sub Set_Color()
    Dim myRange As Range
    Set myRange = Blad1.Range("A2:AB9999")

    'clear all color
    myRange.Interior.ColorIndex = xlNone

    'color only blank cells
    myRange.SpecialCells(xlCellTypeBlanks).Interior.ColorIndex = 6
End Sub
Jag antar att jag ska få in "end.(xldown).select" eller något liknande i range-koden men jag lyckas inte.
Jockefoten är inte uppkopplad   Svara med citat
Gammal 2015-09-20, 11:28   #47
martikainen
Lever på gamla meriter
 
martikainens avatar
 
Reg.datum: May 2008
Ort: Örebro
Inlägg: 3 152
Lyckades få till del 1 av min lösning med att populera formler utan att ange rangen

Började med att ange värdet i A2 till FQDN då denna alltid kommer ligga där.
Sedan var det bara att använda sökfunktionen, och offset funktionen, dessa tillsammans söker efter den tidigare tänkte kolumnen och populerar sen sin formel efter denna.

Citat:
Rows("1:7").Select
Selection.ClearContents

Range("A2").Formula = "FQDN"

'this part checks for FQDN and jump one column to the right, inserts new value and jump down one row

Rows("2:2").Select
Selection.Find(What:="FQDN").Select
ActiveCell.Offset(0, 1).Select


' Short Hostname

ActiveCell.Formula = "Short Hostname"

Rows("2:2").Select
Selection.Find(What:="Short Hostname").Select
ActiveCell.Offset(0, 1).Select

' Virtual/physical

ActiveCell.Formula = "Virtual/Physical"

Rows("2:2").Select
Selection.Find(What:="Virtual/Physical").Select
ActiveCell.Offset(1, 0).Select
ActiveCell.Formula = "=IFERROR(IFNA(VLOOKUP(""*""&serverlistFQDN&""*"", CMDB,2,0),(VLOOKUP(""*""&serverlistShortname&""*"" ,CMDB,2,0))),""Not found"")"
ActiveCell.Offset(-1, 1).Select
Nästa problem är nu att kunna köra "Define Name" på kolumner, också det genom Find funktionen eftersom jag inte vill behöva ange en exakt range.

Får gnugga vidare lite på internet och se om jag lyckas komma på det.
__________________
Pensionerad
martikainen är inte uppkopplad   Svara med citat
Gammal 2015-09-22, 08:19   #48
martikainen
Lever på gamla meriter
 
martikainens avatar
 
Reg.datum: May 2008
Ort: Örebro
Inlägg: 3 152
Citat:
Ursprungligen postat av martikainen Visa inlägg
Lyckades få till del 1 av min lösning med att populera formler utan att ange rangen

Började med att ange värdet i A2 till FQDN då denna alltid kommer ligga där.
Sedan var det bara att använda sökfunktionen, och offset funktionen, dessa tillsammans söker efter den tidigare tänkte kolumnen och populerar sen sin formel efter denna.



Nästa problem är nu att kunna köra "Define Name" på kolumner, också det genom Find funktionen eftersom jag inte vill behöva ange en exakt range.

Får gnugga vidare lite på internet och se om jag lyckas komma på det.

Lyckades få till en lösning:

Första raden tar bort befintligt namn (eftersom kolumnen kan ha ändrats)
Övriga rader söker efter rätt kolumn, väljer hela kolumen och applicerar nytt namn för kolumnen.

Citat:
' Serverlist Short Hostname

ActiveWorkbook.Names("ServerlistShortHostname").De lete

Range("A1").Select
Cells.Find(What:="Short Hostname").Activate
ActiveCell.EntireColumn.Select
ActiveWorkbook.Names.Add Name:="ServerlistShortHostname", RefersTo:=Selection
__________________
Pensionerad
martikainen är inte uppkopplad   Svara med citat
Gammal 2015-09-22, 16:02   #49
MasterChief
Världens Största Kyk®
 
MasterChiefs avatar
 
Reg.datum: Jan 2004
Inlägg: 5 071
Du behöver ju uppenbarligen inte min hjälp längre.

Bra utveckling!
MasterChief är inte uppkopplad   Svara med citat
Gammal 2015-09-23, 21:47   #50
no aim
Registered User
 
Reg.datum: Jan 2009
Inlägg: 20
Någon som vet om det är möjligt att importera excel tabell, med all dess formler och uträkingar till en Access databas?
no aim är inte uppkopplad   Svara med citat
Gammal 2015-09-24, 07:30   #51
martikainen
Lever på gamla meriter
 
martikainens avatar
 
Reg.datum: May 2008
Ort: Örebro
Inlägg: 3 152
Citat:
Ursprungligen postat av MasterChief Visa inlägg
Du behöver ju uppenbarligen inte min hjälp längre.

Bra utveckling!
haha om man bara hittar ett bra sätt att börja på, i mitt fall att definera 1 cell som fast och utgå från denna med find+offset, då släpper ju det mesta

La till några moduler som sätter designen med olika färger och formateringar, så nu kan jag enkelt lägga till en ny "kolumn" (dvs en snutt kod) i dokumentet och den kommer automatiskt landa där jag vill, övriga kolumner ändras ingenting förutom i vilken faktiskt kolumn de landar i, och alla delar skiljs åt av färger.

Det jag skulle vilja göra är ju att använda grouping på något bra sätt så att jag kan få en översikt.

Just nu har jag tex dessa rubriker, som sedan har en del information under sig som man skulle vilja dölja

Virtual platforms
- CPU
- Minne
- Physical host
- VLANs
Backup
- Backupsystem
- Backupstorlek
Monitoring
- Status
- typ av övervakning

Det hade varit snyggt att kunna få groupings på dessa så att man får en snabb översikt, som visar att servern finns i Virtual Platforms, Backup, Övervakning osv. Och att man sedan kan expandera för att se den detaljerade informationen.
__________________
Pensionerad
martikainen är inte uppkopplad   Svara med citat
Gammal 2015-11-13, 08:40   #52
hahavaffan
tuff shit
 
hahavaffans avatar
 
Reg.datum: May 2005
Ort: Skåné
Inlägg: 2 528
Jag har knåpat ihop ett gött Excel-ark som gör en grej som vårt kära affärssystem inte klarar av. Jag har tre blad, där två av dom hämtar data ur SQL-server till pivottabeller, och ett summerar och visar informationen som användaren vill ha. Ett av bladen har en formel som efter varje uppdatering av data från databaserna kör en beräkning som är lite för slö. Det tar ungefär 2 minuter på en quad core 3.4ghz i7 att beräkna, och jag tänker att ni kanske kan se hur jag kan förbättra den?

Här är formeln:
Kod:
=OMFEL(INDEX(Inventory!$C$4:$C$30000;PASSA(B4;Inventory!$D$4:$D$30000;0));"0")
Ni kan ignorera OMFEL, för den adderar ingen tid. Men det formeln gör är att med INDEX och PASSA matcha ett artikelnummer med ett artikelnummer i ett annat blad, och vid träff plocka data ur en cell i det andra bladet. Det är ungefär 25.000 rader i det ena och 15-20.000 i det andra, så det är ju en del rader att snurra igenom.
Min teori är att den för varje rad i första bladet snurrar igenom varje rad i det andra, vilket blir en jävla massa onödigt letande, eftersom att det hade räckt om snurran gick vidare till nästa artikelnummer efter första träffen. Förstår ni hur jag menar?
__________________
IN SOILWORK we trust
hahavaffan är inte uppkopplad   Svara med citat
Gammal 2015-11-13, 08:51   #53
4623
Getar
 
4623s avatar
 
Reg.datum: Sep 2008
Inlägg: 354
Kan du inte använda VBA?
4623 är inte uppkopplad   Svara med citat
Gammal 2015-11-13, 10:24   #54
hahavaffan
tuff shit
 
hahavaffans avatar
 
Reg.datum: May 2005
Ort: Skåné
Inlägg: 2 528
Citat:
Ursprungligen postat av 4623 Visa inlägg
Kan du inte använda VBA?
Jag har gjort det mesta i bladet med VBA, så jo. Men utveckla gärna hur du tänker
__________________
IN SOILWORK we trust
hahavaffan är inte uppkopplad   Svara med citat
Gammal 2015-11-13, 10:28   #55
4623
Getar
 
4623s avatar
 
Reg.datum: Sep 2008
Inlägg: 354
Jag sysslar inte speciellt mycket med excel. Men detta kanske kan hjälpa dig en bit vägen?

https://msdn.microsoft.com/en-us/lib...(v=vs.90).aspx

Sen kan du kolla upp binary tree också.
4623 är inte uppkopplad   Svara med citat
Gammal 2015-11-13, 12:01   #56
MasterChief
Världens Största Kyk®
 
MasterChiefs avatar
 
Reg.datum: Jan 2004
Inlägg: 5 071
Citat:
Ursprungligen postat av hahavaffan Visa inlägg
Jag har knåpat ihop ett gött Excel-ark som gör en grej som vårt kära affärssystem inte klarar av. Jag har tre blad, där två av dom hämtar data ur SQL-server till pivottabeller, och ett summerar och visar informationen som användaren vill ha. Ett av bladen har en formel som efter varje uppdatering av data från databaserna kör en beräkning som är lite för slö. Det tar ungefär 2 minuter på en quad core 3.4ghz i7 att beräkna, och jag tänker att ni kanske kan se hur jag kan förbättra den?

Här är formeln:
Kod:
=OMFEL(INDEX(Inventory!$C$4:$C$30000;PASSA(B4;Inventory!$D$4:$D$30000;0));"0")
Ni kan ignorera OMFEL, för den adderar ingen tid. Men det formeln gör är att med INDEX och PASSA matcha ett artikelnummer med ett artikelnummer i ett annat blad, och vid träff plocka data ur en cell i det andra bladet. Det är ungefär 25.000 rader i det ena och 15-20.000 i det andra, så det är ju en del rader att snurra igenom.
Min teori är att den för varje rad i första bladet snurrar igenom varje rad i det andra, vilket blir en jävla massa onödigt letande, eftersom att det hade räckt om snurran gick vidare till nästa artikelnummer efter första träffen. Förstår ni hur jag menar?
Jag kan inte riktigt ur din förklaring se behovet av att köra PASSA/INDEX istället för LETARAD? Det är ju en exakt matchning du vill ha så då brukar ju LETARAD funka bäst. Fördelen är ju att det är en funktion så jag tror den är snabbare än att köra först en PASSA och sedan en INDEX. Sen om man sätter "0" som typ i PASSA borde den väl gå vidare till nästa artikelnummer efter första träffen? Jag vet att LETARAD gör det i alla fall.
MasterChief är inte uppkopplad   Svara med citat
Gammal 2015-11-13, 12:16   #57
MasterChief
Världens Största Kyk®
 
MasterChiefs avatar
 
Reg.datum: Jan 2004
Inlägg: 5 071
Nä, jag har nog missuppfattat ditt exempel hahavaffan för när jag satte upp två listor med 25000 nummer i varje (på varsit blad) och bad Excel hitta aktuellt nummer i ena listan och matcha det med den andra listan och sedan hämta upp namnet bredvid det numret så gick det ju fort så in i helvete.

EDit: även när jag lät slumpgeneratorn ordna alla 50.000 nummer så tog det ju bara 2-3 sekunder för att köra en matchning.

Senast redigerad av MasterChief den 2015-11-13 klockan 12:21.
MasterChief är inte uppkopplad   Svara med citat
Gammal 2015-11-17, 19:06   #58
Supermicke
Registered User
 
Reg.datum: Jun 2009
Ort: Syd
Inlägg: 1 130
x f y
1| 2 5 1
2| 3 5 2
3| 5 6 3
4| 9 5 4
5| 3 3 6

hej har en liten fråga om utformningen av en lösning

exempelvis..
vill göra sumproduct(x1:x5;y1:y5) för värdet där f är säg 5.. antar att det finns någon fiffig lösning på det med någon sorts sats.. (for f1 till f5 do sumproduct if f=5 else "ta nästa") .. XD så tänker jag men kan inte formulera det
Supermicke är inte uppkopplad   Svara med citat
Gammal 2015-11-17, 21:28   #59
Pikhult
Registered User
 
Reg.datum: Aug 2006
Inlägg: 75
Citat:
Ursprungligen postat av Supermicke Visa inlägg
x f y
1| 2 5 1
2| 3 5 2
3| 5 6 3
4| 9 5 4
5| 3 3 6

hej har en liten fråga om utformningen av en lösning

exempelvis..
vill göra sumproduct(x1:x5;y1:y5) för värdet där f är säg 5.. antar att det finns någon fiffig lösning på det med någon sorts sats.. (for f1 till f5 do sumproduct if f=5 else "ta nästa") .. XD så tänker jag men kan inte formulera det
Nåt i stil med =sumproduct((x1:x5)*(f1:f5=5);(y1:y5)*(f1:f5=5)) borde väl lösa problemet.
Om det finns något tjusigare sätt att komma fram till samma sak låter jag dock vara osagt...
Pikhult är inte uppkopplad   Svara med citat
Gammal 2015-11-18, 21:12   #60
Supermicke
Registered User
 
Reg.datum: Jun 2009
Ort: Syd
Inlägg: 1 130
funkade ju fan jag är djupt imponerad!! älskar smarta lösningar i excel
Supermicke är inte uppkopplad   Svara med citat


Svara


Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +1. Klockan är nu 02:51.


Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
Copyright 2015, Kolozzeum (TM)