Just nu i M3-nätverket
Gå till innehåll

Hjälp med Excel makro - matplanering


a-son

Rekommendera Poster

Som det är nu är det hela boken och är ganska nöjd med det just nu,

orkar inte börja koda hemsida just nu, är inte intressant när man kan lära sej excel ordentligt istället.

 

UTF-8 så gjorde jag så här igår:

Dim shoplist As String
shoplist = ActiveWorkbook.Path & "\file1.txt"
Dim wb As Workbook
    Set wb = Workbooks.Add
    Dim rnSource As Range
    Set rnSource = Blad1.Range("A1")
    rnSource.Resize(Sheet4.PivotTables(1).RowRange.Rows.Count - 1, 1).Copy
    Dim rnTarget As Range
    Set rnTarget = wb.Sheets(1).Cells(1, 1)
    rnTarget.PasteSpecial xlPasteValues
    'ActiveWorkbook.WebOptions.Encoding = msoEncodingUTF8
    'wb.SaveAs FileName:=shoplist, FileFormat:=xlUnicodeText
    'wb.SaveAs FileName:=shoplist, FileFormat:=xlCSV
    wb.SaveAs FileName:=shoplist, FileFormat:=xlCSV
    wb.Close False

det skapade file1.txt

öppnar sedan den i notepad och sparar som file2.txt i UTF-8 format, 
funkar sedan att importera!
stöder excel UTF-8 i något filformat?
kan ju testa att ladda upp något annat för att testa på deras hemsida.
 
 
Så för att återanvända den här koden flera gånger kan göra så här?
Sub DelFolder(MyPath As String)
'Delete all files and subfolders
'Be sure that no file is open in the folder
    Dim FSO As Object
    Set FSO = CreateObject("scripting.filesystemobject")
    If Right(MyPath, 1) = "\" Then
        MyPath = Left(MyPath, Len(MyPath) - 1)
    End If
    If FSO.FolderExists(MyPath) = False Then
        MsgBox MyPath & " doesn't exist"
        Exit Sub
    End If
    On Error Resume Next
    'Delete files
    FSO.deletefile MyPath & "\*.*", True
    'Delete subfolders
    FSO.deletefolder MyPath & "\*.*", True
    On Error GoTo 0
End Sub
Sub SaveHTML()
Dim MyPath As String
MyPath = ActiveWorkbook.Path & "\WWW"
'Anrop av subrutin
DelFolder (MyPath)

'Spara bok som hemsida
    ActiveWorkbook.SaveAs FileName:= _
        MyPath & "\main.htm", FileFormat:=xlHtml, _
        ReadOnlyRecommended:=False, CreateBackup:=False

Var tvungen att testa och det funkar som tänkt, vad bra, då behöver man inte trimma koden överallt om man hittar fel.

 

ToDo:

  • Få exporten att bli bra
  • färgmarkera rätter i "meal plan" om rätt inte finns ingredienser
  • utredning av calulation fliken, vet inte vad som används vart, går det att färgmarkera det som är upptaget? skriva kommentar?
  • shopping end date ska inte vara längre bort än vad mealplan är
  • fundera över "this week" hur den ska vara
  • Tabort länkar, felet ligger i export fliken, alternativt flytta data till calculation flik

 

Meal_Planner_AKT.zip

Länk till kommentar
Dela på andra webbplatser

  • Svars 120
  • Skapad
  • Senaste svar

UTF-8, du får göra som jag, söka på Google och se om du hittar något som fungerar. Uppenbarligen har Excel problem med att spara som UTF8

 

HTML-export, som sagt, vad är det du vill exportera? Jag rekommenderar verkligen metoden jag postade ovan! Verkligen!

 

färgmarkera rätter i "meal plan" om rätt inte finns ingredienser

Du menar att du ska kunna skriva in rätter som inte finns listade på bladet recept? Eller att du har receptnamn på Recepies men inga ingredienser kopplade?

Lite olika lösning på det hela. Om första, sök bara i Recepies och om ej träff färgmarkera.

Om andra, lägg till kolumn på recepies, sök där och sök sedan i recepies om markering finns där om att ingredienser inte finns.

 

Calc-fliken. Bäst om du låter den vara egentligen. Skapa ett till blad för data du inte vill se istället. Annars, stega genom koden, hittar cellreferenserna så ser du vilka områden som används.

 

Länkar

De finns i Namnhanteraren. ta fram exportfliken, ta upp namnhanteraren och rensa alla som pekar utanför boken. 

Kopierar du blad mellan olika böcker?

 

shopping end date

Skapa ett namn med en formel i still med

=FÖRSKJUTNING($E$26;0;0;MIN(MAX(Plan[DATE])-calculations!$E$26;ANTALV(calculations!$E$26:$E$56));1)

och använd detta namn som referens i dataverifieringen.

Kanske fungerar som du vill...

Länk till kommentar
Dela på andra webbplatser

Ska kämpa vidare med UTF-8 och samtidigt bearbeta ourgroceries om att kunna köra något annat som funkar direkt med excel.

 

HTML kommer att bli i framtiden, måste få viktigare saker klar före + att det här tar ganska mycket av min fritid nu.

 

Färgmarkera rätter i mealplan,

är alternativ 2 som du nämner, när man väljer recept, och det inte finns ingredienser,

känner att det kommer att ta tid att få in alla rätter i ingredienser listan, och då kanske man bygger upp med recept för att snabbt få till en planering, och efter som fylla på i  ingredienser listan.

Kan ju även bli båda dina alternativ, kan även bli fel om man skriver in rätten i mealplan, och då har man ingen koll på det.

 

Länkar

Hittade felet i namnhanteraren, fanns lite andra dubbletter där, kan det förstöra saker?

 

Shopping end date

ska testat lite hur det ska göras

 

 

Tackar för all support, hade inte kommit så här långt utan din hjälp.

Länk till kommentar
Dela på andra webbplatser

Dubletter, kolla vilka som används/är de riktiga. Annars är de bara att ta bort.

 

Färgmarkera, som sagt sök efter din rätt i ingredienslistan, returnera något lämpligt om träff, något annat om inte träff. När du sedan väljer rätt låt villkorsstyrd formatering tittarpå receptlistan om ingredienser saknas eller ej och färgmarkera. Inget speciellt svårt att ordna.

Kan även lägga till på This Week.

Går även att få till en markering på inköpslistan om någon rätt saknas om man bara tänker till lite.

 

HTML, igen, vad ska exporteras?

 

Ourgroceries, UTF8. Jobbigt. Iofs ett logiskt val av dem.

men jag kan testa lite, hittat ett sätt att testa om UTF8.

Länk till kommentar
Dela på andra webbplatser

Fått till shopping end date, fick justera din rad lite lade till +1 på slutet någonstans, fattades en dag annars

=FÖRSKJUTNING($E$26;0;0;MIN(MAX(Plan[DATE])-calculations!$E$26;ANTALV(calculations!$E$26:$E$56));1)

 

Att röd markera i recipes behövs inte, känns som att det räcker i mealplan, för då får man en varning att allt inte är bra när man planerar

 

har lagt till en kolumn på recipes som skriver 1 eller 0 om det finns någon ingredienser in lagd

=OMFEL(OM(LETARAD([@DISH];Ingredients;2;FALSKT)>0;1);0)

 

och nu var då tanken att få vilkordsstyrd formatering på mealplan utfrån ovanstående

jag kom fram till att det här borde bli bra, men jag vet inte hur man ska lägga in det, får error att det är fel namn,

=om(LETARAD(@[MAIN DISH];Dishes[[#Rubriker];[DISH]];5;FALSKT)>0)

men det funkar att bara lägga in en jämförelse, =$C$6>0

 

ska man göra en spegel tabell dold där jag lägger 1 eller 0 om någon ingrediens finns in lagd

och sedan ta vilkordsstyrd formatering som kollar om värdet i motsvarande cell i "spegel tabell" är större än 1

 

hur ska jag gå vidare?

Länk till kommentar
Dela på andra webbplatser

En detalj först - när du lägger till något till vissa tabeller, som recept-listan (vi ska inte översätta boken till svenska?), så kommer de nya kolumner kopieras till Calc-bladet.

Det vill säga om man inte tar det lite varligt kan områden skriva över varandra.

 

Nu fanns det utrymme men man bör beakta.

Funderar på min modell en gång till..

Tror man kör behandlingen direkt i Mealplan då.

Lite dumt att tabellnamn inte fungerar i villkorsstyrd formatering, man måste skapa nya namn som refererar till den dynamiska tabellen och använda dessa namn i villkorsstyrd formatering.

Skapa ett namn som refererar till

=Ingredients[DISH]

och använd detta namn i

=OM($D6="";10;OMFEL(PASSA($D6;IngredDishes;0);0))=0

som du använder som regel för en villkorsstyrd formatering i den/de tabeller du önskar.

1/0 receptlistan behövs inte för detta.

Länk till kommentar
Dela på andra webbplatser

Oj då ska tänka på det ang. tabeller,

Sen om den ska översättas, det vore egentligen bra, har svårt att tänka i engelska ord, men lite krångligt för mej att göra.

 

Får celler att ändra färg, men det stämmer inte,

skulle vilja ha hjälp bryta ner din rad för att hitta felet.

=OM($D6="";10;OMFEL(PASSA($D6;IngredDishes;0);0))=0

har kommit en liten bit påvägen, men måste ju göra annat med tyvärr

 

$D6=låst kolumn och raden är dynamisk?

$D6=""  om d6 är tom blir det 10 annars blir det omfel formeln

Länk till kommentar
Dela på andra webbplatser

Grunden i regeln är att kolla om resultatet är lika med noll, då blir utfallet sant, annars falskt.

 

Därav första OM, D6="" så returneras annat noll från denna del.

Andra delen är PASSA som söker efter värdet i D6 inom referensen IngredDishes. Omfel ser till att värdet noll returneras om PASSA returnerar ett felvärde.

Går även att skrivas som

=OCH($D6<>"";ÄRFEL(PASSA($D6;IngredDishes;0))

ger samma resultat.

Fungerar inte?

Har du skapat namnet IngredDishes?

Du ska markera hela tabellen, eller ett område av den, som börjar på rad sex och där namnet på din maträtt finns i kolumn D.

 

Översätta? Bara att göra, finns nästan inget som är knutet till namnen på tabeller eller blad . Koden hittar jag iofs två saker, skapandet av Pivottabellen och en av exportrutinerna...

Länk till kommentar
Dela på andra webbplatser

Funkar nu, hade gjort ett par fel, excel gör lite som den tycker när man skapade vilkoren,

först hade jag fel ref i formeln när jag provade i D kolumnen, när det var fixat och E och F skulle fixas, så stod referesen kvar i D, när man ändra de det så hoppade den tillbaka till D som jag uppfattade,

fick ändra flera gånger.. men nu är det perfekt!

Måste läsa på om hur passa funkar nu bara,

får väl hugga tag i HTM exporten nu då..

Länk till kommentar
Dela på andra webbplatser

Ja. när man skapar villkorsstyrda referenser gäller det att hålla tungan rätt i mun, att referenserna är korrekta. Det är lätt att hamna en rad eller kolumn fel.

 

HTML-export, åter, vad är det du vill exportera?

 

PASSA är trevligt, inget svår alls egentligen. Söker efter ett värde i en vektor och returnerar relativa positionen i vektorn eller ett felvärde.

Länk till kommentar
Dela på andra webbplatser

HTML- egentligen vill jag ha det mesta tillgängligt på nätet,

är väl fliken ingredients som inte behövs, fast det är klart om någon är av åsikt att det ska vara nåt mer i en rätt, så kanske den fliken är bra att ha tillgänglig med.

är för att familjen kan se vad som ska ätas, och för att se vad som finns i recept väg för att komma med förslag,

sen är this week smutt på surfplattan när man lagar mat, med länkar direkt.

 

lite nya ideer kommer upp, skulle vara bra om tabellerna sorteras efter maträtt när man sparar, eller ha en knapp för det,

blir lättare att leta då.

 

och sen blir det lite problem vad jag ser, när man kommer till slutat på lista,

då kan man inte börja planera nästa månad förrns listan är tom och alla datum kan bytas ut,

kanske kan lösas med en ny flik för planering, som sedan flyttas över när första är tom/klar

Länk till kommentar
Dela på andra webbplatser

Svar från ourgroceries inte bra för tillfället,

 

Hi xxxx,

 
The file you sent in the previous email (file1.csv) is encoded using Latin1. I've briefly just now Googled around to see whether Excel can save as UTF-8, and it appears that it cannot. (That's amazing, since UTF-8 is the most common format.) Looks like your work-around of saving through Notepad may be the best solution. We plan on improving the Import feature of OurGroceries, and when we do that we may try to auto-detect the format and support some of these legacy encodings.
 
Lawrence
...
 
Länk till kommentar
Dela på andra webbplatser

När  jag sökt lite på nätet har jag sett kommandoverktyg som påstår sig kunna översätta. Kanske något som kan passa dig, att exportera och sedan fyra av detta verktyg från inom Excel? Kan leta reda på det igen. Har inte testat att det fungerar.

 

 

 

HTML, okej. Jag håller fast vid att publiceringsmetoden jag visat är den bästa.

Länk till kommentar
Dela på andra webbplatser

ja om du hittar nåt så är det värt ett försök, eller så försöker man med att spara det i urklipp istället

för det går att klistra in det på hemsidan för import, kanske är smidigare och fortare

 

Blir nog som du skriver ang HTML inom en snar framtid, är inte smidigt att göra det på mitt sätt direkt.

ska bara fixa en bra editor, för man vill ju ha en skaplig sida runt omkring.

många år sedan man knackade HTML, var dreamweaver då, vad rekommenderas nu?

 

 

Edit:

gör en ny export som får se ut så här, funkar perfekt

Sub export_4()

    Application.ScreenUpdating = False
'Öppnar hemsida för inmatning av varor
 ThisWorkbook.FollowHyperlink Address:="http://www.ourgroceries.com/your-lists/list/v73uQenix4Cfnyl2VxjRJJ" ', NewWindow:=True

'Kopierar värden till urklipp
    Dim rnSource As Range
    Set rnSource = Blad1.Range("A1")
    rnSource.Resize(Sheet4.PivotTables(1).RowRange.Rows.Count - 1, 1).Copy
    
    Application.ScreenUpdating = True
End Sub
Länk till kommentar
Dela på andra webbplatser

Idag rekommenderar jag, knäppt nog, en variant av Microsoft Visual serien, Visual Web Developer 2010 Express

http://www.microsoft.com/visualstudio/eng/downloads#d-2013-express

Den finns en bit ned på sidan.

 

Den kan betydligt mer än vad man behöver men man kan hantera även enklare lokala hemsidor i den. Viusual Express 2013 for Web har jag inte testat, vet inte vad den kan men tror den saknar en del som 2010 års variant ovan kan.

Gratis, vill du betala för det så... ja då vet jag inte.

 

Kopiera till urklipp, kanske enklaste lösningen. Om nu inte Ourgroceries kan importera från HTML...

Länk till kommentar
Dela på andra webbplatser

Fick något skit med filen igår när jag slutade, kan ha varit dropbox som strulade till det att den inte han cynka eller nåt, vet ej

går det att få till min fil?

har dock en äldre version och får väl återskapa mina recept annars.

Meal_Planner_AKT_backup.zip

Länk till kommentar
Dela på andra webbplatser

Nä, den där verkar skadad. Du kan testa ladda ned Open/Libre office Calc och testa öppna den där, ibland går det när Excel inte vill.

Länk till kommentar
Dela på andra webbplatser

fick samma fel igår kväll igen, och allt gick förlorat

nu på morgonen så sparde jag en kopia medans jag höll på att fixa allt igen,

men nu går det inte att öppna kopian eller orginalet.

 

men dom går att öppna i openoffice,

lite tråkigt när man börjar få stil på listorna.

Länk till kommentar
Dela på andra webbplatser

Sparar du bara till Dropbox eller sparar du även lokalt?

Blir det fel på båda versionerna?

 

Excel kan ibland "få spunk" och man kan då få bygga om böcker helt eller delvis.

Länk till kommentar
Dela på andra webbplatser

jag sparar i min dropbox katalog, 

ska gå igenom allt igen för att hitta mina ändringar, men denna gång ska jag spara ändringarna i en text fil med, om det blir krasch

och jag ska inte köra på dropboxen heller.

Länk till kommentar
Dela på andra webbplatser

nu har jag lagt in en sak i taget tills det kraschade,

det är när jag lägger in villkor formatering i recept fliken som det blir galet

tror att jag skrev att det skulle köras i en kolumn och många rader 6-500 (tänkte att när man lägger in fler recept så ska även dom vara med,

kan man göra så det ska köras i alla rader som ingår i tabellen istället tro?

 

bifogade filer är skapta iden här ordningen äldst högst upp:

Meal_Planner_AKT_5

Meal_Planner_AKT_6

Meal_Planner_AKT

 

det är nog så att akt och akt_6 är samma fil ser jag på tiden,

mealplan_crash.zip

Länk till kommentar
Dela på andra webbplatser

En titt på filen ger att du har flera villkorsformateringar i samma tabell, formateringar som överlappar varandra.

Kanske det är det som ger att Excel kraschar, den hamnat i någon loop när cellerna ska formateras.

 

Tabeller är trevliga, de utökas automagiskt när du lägger till rader. När de utökas följer även formateringsreglerna med om de redan omsluter hela tabellen/kolumnen.

 

Dvs gör såhär

1: markera cell i tabell, ta upp villkorsstyrd formatering -> hantera regler.  Radera alla regler!

2: Markera hela tabellkolumnen du vill formatera, se till att markeringen startar på första raden i tabellen och ange din formel (som ska referera till denna första cell)

 

Om du vill minska komplexiteten i formateringsregelen kan man, likt vi gjorde i receptlistan, flytta ut PASSA-sökningen i en kolumn i tabellen och basera formateringen på värden av denna kolumn.

Länk till kommentar
Dela på andra webbplatser

Markera alla tre kolumnerna och ange regeln. Fungerar på samma vis.

 

Du kan även, efter du applicerat en regel, ta upp regeln och anpassa området den gäller på.

 

Om du mixtrar med din tabell skadar det inte att ibland ta en titt så att reglerna inte splittrats, det kan ske.

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...