Gå till innehåll

MH_

Medlem
  • Innehållsantal

    180
  • Gick med

  • Dagar vunna

    20

Allt postat av MH_

  1. Sub tjoflöjt() Dim WS As Worksheet Dim namn As Name Dim adress As String For Each WS In ActiveWorkbook.Worksheets For Each namn In WS.Names If ((InStr(namn.Name, "Print_Area") > 0) Or (InStr(namn.Name, "Print_Titles") > 0)) Then adress = namn.RefersTo If (InStr(namn.Name, "Print_Area") > 0) Then namn.Delete WS.PageSetup.PrintArea = adress ElseIf (InStr(namn.Name, "Print_Titles") > 0) Then namn.Delete WS.PageSetup.PrintTitleRows = adress End If End If Next namn Next WS End Sub då kommer Utskriftsområde och Utskriftsrubriker finnas kvar medan de namngivna "Print_Area" och "Print_Titles" försvinner (omvandlas till Utskriftsområde/Utskriftsrubriker på svenska). Kolla de här paren med svenska/VBA namn före/efter rensningen Sub namn() Dim namn As Name For Each namn In ActiveWorkbook.Names Debug.Print (namn.NameLocal & Chr(10) & namn.Name & Chr(10)) Next namn End Sub ****ED*** Dvs de kvarvarande områdena kommer att ha namnpar som ser ut så här: Ändringshistorik!Utskriftsområde Ändringshistorik!Print_Area Ändringshistorik!Utskriftsrubriker Ändringshistorik!Print_Titles
  2. det är för att jag är dum i huvudet. Om man kör "namn.Delete" i första IF-satsen så finns den inte kvar när man kör nästa IF-sats....
  3. japp. kolla med Sub test() MsgBox ActiveSheet.PageSetup.PrintArea MsgBox ActiveSheet.PageSetup.PrintTitleRows End Sub Så ser du att det område som heter Print_Area när du kör .NameLocal inte är ett Print_Area "på riktigt". det andra känns inte igen som en "riktig" PrintArea Dvs den som skapade utskriftsområdet har bara gett ett område namnet "Print_Area". Inte skapat det med hjälp av PageSetup Testa så här (bara print_title) Gå igenom varje blad. Kolla om ett namn innehåller "Print_Titles". Om så: spara adressen ta bort området skapa printTitle genom att sätta PageSetup.PrintTitleRows=adressen Nästa blad Sub tjoflöjt() Dim WS As Worksheet Dim namn As Name Dim adress As String For Each WS In ActiveWorkbook.Worksheets For Each namn In WS.Names If (InStr(namn.Name, "Print_Titles") > 0) Then adress = namn.RefersTo namn.Delete WS.PageSetup.PrintTitleRows = adress End If Next namn Next WS End Sub Då kommer du bara att ha ett "Print_Title" för varje blad. Och det känns igen av excel så det borde inte skapas några nya om du jobbar manuellt Lägg in en IF för "Print_Area" också Sub tjoflöjt() Dim WS As Worksheet Dim namn As Name Dim adress As String For Each WS In ActiveWorkbook.Worksheets For Each namn In WS.Names If (InStr(namn.Name, "Print_Titles") > 0) Then adress = namn.RefersTo namn.Delete WS.PageSetup.PrintTitleRows = adress End If If (InStr(namn.Name, "Print_Area") > 0) Then adress = namn.RefersTo namn.Delete WS.PageSetup.PrintArea = adress End If Next namn Next WS End Sub Peta in det i någon snurra som letar efter rätt workbooks
  4. Då får du väl köra en snurra som räknar antalet "Print_Titles" och radera det som heter "Utskriftsrubriker" när man kör lokala namn: Sub radera_Utskriftsrubriker() Dim namn As Name Dim PTcount As Integer PTcount = 0 For Each namn In ActiveWorkbook.Names If (InStr(namn.Name, "Print_Titles") > 0) Then PTcount = PTcount + 1 End If Next namn If PTcount > 1 Then For Each namn In ActiveWorkbook.Names If (InStr(namn.NameLocal, "Utskriftsrubriker") > 0) Then namn.Delete End If Next namn End If End Sub MEN. i rimlighetens namn är det det område som döps om till det lokala namnet som är "Riktigt". Det område som kallas "Print_Titles" oavsett språk borde vara något som excel inte känner igen som "Print_Titles" + du behöver eventuellt köra det här för varje enskilt blad eftersom du faktiskt kan ha en "Print_Titles" i varje blad
  5. Ahhh, och de svenska namnen får du med "NameLocal" Sub swe() Dim namn As Name For Each namn In ActiveWorkbook.Names Debug.Print (namn.NameLocal) Next namn End Sub Då borde du kunna ställa upp dina villkor så att det blir precis som du vill
  6. Öppnade filen du hade lagt i den andra tråden. Jag får inga fel så jag vet inte riktigt vad som blir stökigt. Men: Alla utskriftområden (oavsett språk) får en begränsad räckvidd (bladet). Om du vill radera ett sånt område tror jag att du måste ställa dig i det bladet först. Typ: Sheets("UCA001").Select ActiveWorkbook.Names("Print_Area").Delete Eller, det verkar även funka att hänvisa till 'UCA001'!Print_Area ActiveWorkbook.Names("'UCA001'!Print_Area").Delete Hmm, eller inte. i din exempelfil så har du två print titles. I excel ger Ctrl+F3 två områden: utskriftsrubriker och Print_Titles. Men om du kör den här loopen så "ser" VBA båda områdena som "'UCA001'!Print_Titles" (lista i direktfönstret) Sub xxx() Dim namn As Name For Each namn In ActiveWorkbook.Names Debug.Print (namn.Name) Next namn End Sub Men, koden: ActiveWorkbook.Names("'UCA001'!Print_Titles").Delete tar bara bort den ena... ***************************************************************************************************************************** Ähh, testa något i den här stilen. Letar igenom alla namn. Om namnet innehåller ordet "Print_Area" så raderas det : Sub test() Dim namn As Name For Each namn In ActiveWorkbook.Names If InStr(namn.Name, "Print_Area") > 0 Then namn.Delete End If Next namn End Sub Det borde funka även om det finns "Print_Area" i olika blad. VBA sköter ju adresseringen själv så du behöver inte bry dig. Och om du vill radera både area och Titles: Sub test2() Dim namn As Name For Each namn In ActiveWorkbook.Names If ((InStr(namn.Name, "Print_Area") > 0) Or (InStr(namn.Name, "Print_Titles") > 0)) Then namn.Delete End If Next namn End Sub Inspirerat av: excel - Delete specific name ranges using vba - Stack Overflow
  7. MH_

    Roliga avigheter

    Jaha. Nu har alltomwindows.se tydligen börjat med kontaktannonser också:
  8. Nej. vid närmare eftertanke så används samma DIR för att söka efter undermappar. Och då skiter sig den delen. Du redan en separat funktion (isExcelFile) som kollar om de filer (inte mappar) som hittas är excelfiler. Du får väl modifiera den istället Börja med att ta bort sökvägen ur anropet så att If isExcelFile(folderPath & filename) Then blir: If isExcelFile(filename) Then Sen får du modifiera funktionen Function isExcelFile(filename As String) As Boolean isExcelFile = (InStr(1, filename, ".xl") > 0) End Function till Function isExcelFile(filename As String) As Boolean isExcelFile = ((InStr(1, filename, ".xls") > 0) AND (InStr(1, filename, "ABC") = 1)) End Function raden isExcelFile = (InStr(1, filename, ".xl") > 0) kollar redan om det är en excelfil. Men den klarar inte ABC*.XLS* eftersom det bara är en strängsökning. Då får du dela upp det på två delar med AND, typ Dvs .XLS någonstans och ABC på första positionen
  9. I rimlighetens namn är det väl bara att byta ut "*.*" i raden: filename = Dir(folderPath & "*.*", vbDirectory) Testa?
  10. MH_

    Roliga avigheter

    Kan man ana att någon har varit lite för mån om att vara inkluderande? "Tredje man" är ju ett etablerat begrepp. Men "Tredje person" känns som om någon har gått lite för många chefskurser.
  11. Utan att testa. Dra ner startsubben till: Sub StartSub() Dim folder As String folder = GetFolder If folder = "" Then Exit Sub Application.ScreenUpdating = False LoopAllSubFolders folder Application.ScreenUpdating = True End Sub så kan du lägga en "yttre loop" så att du kör alla sök/ersättpar innan du går till nästa bok Sub LoopWorkbook(wb As Workbook) Dim SökTextBok As Workbook Dim rMinStartCell As Range Set SökTextBok = Workbooks.Open("C:\temp\sökpar.txt") Set rMinStartCell = SökTextBok.Sheets(1).Range("A1") Dim ws As Worksheet Do Until rMinStartCell.Value = "" globalSearchFor = rMinStartCell.Value globalReplacewith = rMinStartCell.Offset(0, 1).Value If globalReplacewith = "" Then Exit Sub For Each ws In wb.Worksheets SearchReplace globalSearchFor, globalReplacewith, ws Next ws Set rMinStartCell = rMinStartCell.Offset(1, 0) Loop SökTextBok.Close End Sub Där du kanske vill deklarera "SökTextBok" globalt och läsa in /stänga från StartSub Medan globalSearchFor och globalReplacewith kan göras lokala. Dvs om du har tråkigt.
  12. i "startSub" kan du istället för "InputBox:arna" öppna din textfil som en arbetsbok och hämta sök/ersätt paren från A/B kolumnen. sen loppa rad för rad tills du stöter på en tom cell (do...loop i exemplet) '... 'befintlig kod för att hämta sökväg Dim folder As String folder = GetFolder If folder = "" Then Exit Sub 'ny kod för att hämta sök/ersätt från textfil Dim SökTextBok As Workbook Dim rMinStartCell As Range Set SökTextBok = Workbooks.Open("C:\temp\sökpar.txt") Set rMinStartCell = SökTextBok.Sheets(1).Range("A1") ' Loopa igenom raderna i textfilen Do Until rMinStartCell.Value = "" globalSearchFor = rMinStartCell.Value 'Och "ersätt med" från B-kolumnen globalReplacewith = rMinStartCell.Offset(0, 1).Value 'kör koden du redan har för att kolla om det finns tomma värden If globalSearchFor = "" Then Exit Sub If globalReplacewith = "" Then Exit Sub ' anropa LoopAllSubFolders Application.ScreenUpdating = False LoopAllSubFolders folder Application.ScreenUpdating = True 'sist i loopen flytta du ner "rMinStartCell" en rad Set rMinStartCell = rMinStartCell.Offset(1, 0) 'och loopa Loop 'och stäng textfilen när loopen är färdig SökTextBok.Close Se bara till att ändra ordningen så att getfolder osv ligger före i koden. Det här exemplet är förmodligen väldigt långsamt. Du kör ett par med sök/ersätt , loppar igenom alla filar osv. Sen tar du nästa par och kör sök/ersätt. Det borde vara mycket snabbare att vända på det - sök upp en fil, kör samtliga sök/ersätt. Sök upp nästa fil osv. Men då måste du ändra din fungerande struktur, och sånt suger. Här har du text om hur man läser textfiler med VBA https://www.automateexcel.com/vba/read-import-text-file/ https://www.automateexcel.com/vba/read-import-text-file/
  13. MH_

    Vad är en punkt?

    Och när Riksbanken höjer räntan så kallas 0.25% enkelhöjning, 0.5% dubbelhöjning osv. Jag antar att alla branscher drabbas av fikonspråksförbannelsen.
  14. Jag använder aldrig Powerpoint själv. Så se det som killgissningar... Testa: Bildspel->eget bildspel ->anpassade bildspel->nytt Där kan du skapa ett bildspel (bildordning) för en utbildning genom att "skicka dom till höger" Ge ett bra namn och klicka OK börja om från ->nytt och skapa ett ny bildordning för nästa utbildning osv. När du har skapat bildspelen så kan du starta dom från "eget bildspel" eller skapa genvägar på ditt sammanställningsblad På ditt sammanställningsblad måste du först skriva en text som skall bli klickbar och markera den. T.ex Utbildning 1 sen infogar du länken via Infoga->hyperlänk (eller ctrl+i) "Plats i det här dokumentet". Längst ner till höger har du "anpassade bildspel" . Tada!!!! https://support.microsoft.com/sv-se/office/skapa-och-visa-ett-anpassat-bildspel-09d4d340-3c47-4125-b177-0de3be462c5d ************************************************************************************************************************** Övrigt att leka med. Jag skrev det innan jag kom ihåg anpassade bildspel, så du får läsa det vare sig du vill eller inte :-). Värdelöst för det du vill göra men powerpint-Zoom är extremt användbart om du t.ex vill lägga länkar till utvikningar som du kanske vill köra om publiken kräver det. ************************************************************************************************************************** Kolla om Infoga->Zoom kan göra saker du vill. https://support.microsoft.com/sv-se/office/använd-zoom-för-powerpoint-för-att-ge-din-presentation-liv-9d6c58cd-2125-4d29-86b1-0097c7dc47d7 Jag tror inte att du kan göra exakt det du vill På förstasidan så kan du infoga en avsnittst-zoom (genvägar till varje utbildning). Men du måste gör 3 olika avsnitt där bilderna (kopior) kommer i den ordning du vill. Så du vinner inte jättemycket. det blir som att ha 3 powerpointfiler i en bara Tyvärr verkar inte Powerpoint ha något sätt att klona en bild (så att kopian ändras när originalet ändras). Det hade ju varit en variant annars. Ahhh. se anpassade bildspel ovan
  15. Så fort du skriver in något i stil med 2023-06-30 så försöker excel att översätta det till ett datumvärde (45097 dagar sedan 1900-talets start) Men beroende av visningsformat och så visas det som 45097 eller ett datum (det är fortfarande 45097 som ligger i bakgrunden). Det är bara för att excel skall kunna räkna på datum osv. Den automatiken är svår att "döda". Om det visas som 45097 så kan du alltid ändra visningsformatet (ctrl+1, datum), eller Ctrl+Shift+3 för (engelskt) datumformat Även om det underliggande formatet är 45097 så kommer det att visas som 2023-06-20, eller 20-jun-23 om du kör Ctrl+shift+3 ****************************************************************** Men jag förstå inte vad du menar med att : =TEXT(A1;"ÅÅÅÅ-MM-DD") Inte funkar. Den skapar en (vänsterställd) kopia i rent textformat. Vad är det som blir fel??? Om man kopierar en sån cell och kör "klistra in som värde" så blir det också en (vänsterställd) textcell. Så fort du går in och redigerar omvandlas det visserligen till (högerställt) datumformat. Är det du får problem med??? Då kan du markera den nya kolumnen och göra om den till textformat. Då respekteras formatet (i nyare excel i alla fall). Och vad menar du med "import" Om du använder "hämta och transformera" så kan du bestämma hur du vill importera. Exempel när du hämtar från en befintlig tabell (likadant om du t.ex hämtar från extern excelbok) DATA->hämta och transformera->från tabell/intervall i Editorn kan du markera den vänstra delen av kolumnhuvudet (där det står "datum"). Ändra till det datumformat du vill ha (om du vill slippa tiderna ändrar du till "Datum" -> byt ut steg). När datumet ser ut som du vill så gör du samma sak, men väljer formatet "text" och->"Lägg till nytt steg" Upprepa för de kolumner som behöver fixas.
  16. MH_

    Roliga avigheter

    Hur länge tror ni att Malin och CO har längtat efter att få använda den här rubriken?
  17. Nja, du är nog tvungen att göra en flerstegsraket med tre filer inblandade. Original.xlsx Old.xlsx New.xlsx 1. En fråga som hämtar dina originaldata till filen Old. Det är en powerQuery som du bara kör en gång. Jag skapade en snabbfråga som hämtar Tabell1 i C:\tmp\Original.xlsx. Exempelfrågan blir så här: HämtaOriginal (läs in som tabell) let Källa = Excel.Workbook(File.Contents("C:\tmp\Original.xlsx"), null, true), HämtaOriginal_tabell = Källa{[Item="Tabell1",Kind="Table"]}[Data], #"Ändrad typ" = Table.TransformColumnTypes(HämtaOriginal_tabell,{{"Datum", Int64.Type}, {"B", Int64.Type}, {"C", Int64.Type}}) in #"Ändrad typ" Stäng din Query och markera den skapade tabellen. Döp om tabellen till t.ex "tabell_old" (menyn Tabelldesign->längst till vänster) Sen skapar du en fråga som hämtar det sista datumet från Tabell_old MaxDatum (Endast anslutning) let Källa = Excel.CurrentWorkbook(){[Name="tabell_old"]}[Content], #"Beräknat senast" = List.Max(Källa[Datum]) in #"Beräknat senast" Som du ser är det Tabell_old i "CurrentWorkbook" som används som källa. dvs den tabell som skapades när vi hämtade "original" Sen hämtar du den nya tabellen och filtrerar den med hjälp av MaxDatum. HämtaNew (Endast anslutning) let Källa = Excel.Workbook(File.Contents("C:\tmp\New.xlsx"), null, true), HämtaNew_Table = Källa{[Item="Tabell1",Kind="Table"]}[Data], #"Ändrad typ" = Table.TransformColumnTypes(HämtaNew_Table,{{"Datum", Int64.Type}, {"B", Int64.Type}, {"C", Int64.Type}}), #"Filtrerade rader" = Table.SelectRows(#"Ändrad typ", each [Datum] > MaxDatum) in #"Filtrerade rader" Eller något annan av Ed's förslag Slutligen slår du ihop frågan HämtaNew och Tabell_old i "CurrentWorkbook". Ställ dig i "tabell_old" och gör en Data->hämta och transformera->från tabell/intervall Fixa till koden så att det blir något i den här stilen: uppdatera_nytt Källa = Excel.CurrentWorkbook(){[Name="tabell_old"]}[Content], #"Tillagd fråga" = Table.Combine({Källa, HämtaNew}) in #"Tillagd fråga" ********* ed, glömde det viktigaste*********** Stäng editorn. Dina data har lagts ihop i en ny tabell. Radera den gamla "tabell_old" och döp om din nya tabell till "tabell_old" (menyn Tabelldesign->längst till vänster) Nu hämtas gamla data från Tabell_old och nya data läggs till Tabell_old. Dvs Tabell_old växer varje gång du läser in en ny rapport ******************************************** Det är alltså frågan "uppdatera_nytt" som du kör när du vill lägga på nya data. Testa på ett mindre material och se om det blir som du vill. Sen får du försöka optimera lite. Jag har kört på ett pyttexempel så jag vet inre riktigt om/vad som tar tid. Men "hämtaNew" och MaxDatum behöver inte synas som tabeller så du borde kunna köra dem som "endast anslutning": Sen kan du högerklicka på varje fråga och kolla inställningar för anslutning osv. Hämtningen av Original-tabellen behöver t.ex bara köras en gång (manuellt). så där kan du se till att alla uppdateringar är avstängda. Eller- När du har kört Original-hämtningen så kan du ta bort den frågan om du vill Ähhh. Testa med lite mindre filer som sagt var. Du vill väl framför allt vara säker på att du inte sätter igång en rundgång när tabellen uppdateras. Och så kanske du vill sortera efter datum osv /tjolavipp
  18. Något är fortfarande knas. Jag skulle uppfatta 30 sekunder som för mycket. 30 minuter är nonsens. ******************* Vet inte om jag fattar frågan. Om du inte har samkört "April" och skriver över filen så försvinner ju data? ******************* > lägga in alla nya datum som inte redan finns i "old" i rapporten. Du kan testa den här varianten från Ed Hansberry https://www.ehansalytics.com/blog/2019/3/17/create-a-dynamic-date-table-in-power-query gå ner till "So how do we make this dynamic? " för att se hans variant. Förkortat: I query editorn: Högerklicka på fråga1/old -whatever: Frågan som läser in "old" Välj "referens" Då skapas det en länk till fråga 1 (som heter Tabell1 i mitt påhittade exempel). Klickar du på "avancerad editor" ser du att koden är jättekort. Det är bara en länk till första frågan let Källa = Tabell1 in Källa Döp om den nya frågan till "SistaDatum" I den nya frågan Markerar du datumkolumnen och går till Transformera->datum->Senaste Den nya länk-frågan resultera då i en tabell med ett enda värde: det sista datumet i "OLD". Med en marginellt längre kod: let Källa = Tabell1, #"Beräknat senast" = List.Max(Källa[Datum]) in #"Beräknat senast" Sen behöver du "bara" filtrera bort gamla datum i tabell2 innan den skickas vidare till sammanslagning Ed föreslår att du helt enkelt filtrerar tabell2 med ett godtyckligt datum och sedan ändrar koden Gå till tabell2-frågan och klicka på "filterpilen" i kolumnhuvudet. Datumfilter, datum efter -> välj ett datum, vilket som då får jag in en filterkod i stil med: #"Filtrerade rader" = Table.SelectRows(#"Ändrad typ", each [Datum] > #date(2023, 6, 14)) Sen använder Ed frågan "SistaDatum" som en parameter och ersätter det "hårdkodade" datumet #"Filtrerade rader" = Table.SelectRows(#"Ändrad typ", each [Datum] > SistaDatum) Sen använder du den filtrerade tabell2 när du slår ihop tabellerna. ******************************************************************************* Du i princip skippa hjälptabellen och köra all kod i Fråga2. Men det var mycket svårare att få till en fungerande kod då (för mig). Men det här verkar funka. #"Filtrerade rader" = Table.SelectRows(#"Ändrad typ", each [Datum] > List.Max(Tabell1[Datum])) ******************************************************************************* ************* Tips ************* Är du lika dålig som jag på att bestämma var tabellerna skall hamna? I excelbladet, så syns frågorna till höger. Exempelvis behöver vi inte se tabellen "SistaDatum". Högerklicka på frågan och välj "Läs in till" och ändra till "skapa endast anslutning" (sen kan du ta bort det bladet också) Du kan eventuellt göra samma sak för tabell2. Du behöver ju inte se den tabellen Btw. Kör du "datamodellen"? Enligt min erfarenhet är det lite segare än klassisk excel. Om du inte behöver förmågan att hantera gigagantiska data så kanske du kan strunta i det. **************************
  19. Tidsåtgången är obegriplig. Kan inte hjälpa där. Läser du in tabell2 ordentligt innan du börjar joina? Om du kollar länken https://learn.microsoft.com/sv-se/powerquery-m/table-distinct så hänvisar de till buffring som en lösning på vissa problem: https://learn.microsoft.com/sv-se/powerquery-m/table-buffer Men reservationen är talande "om du använder den här funktionen kan det hända att dina frågor körs snabbare eller inte" Men det kanske är värt att leka med i alla fall? "Jag kan inte ta bort dubletter på kolumnen ordernummer heller" Men om du rensar dubbletterna på alla kolumner borde det blir rätt. Eller? dvs att du kör något i stil med Table.Distinct(#"Tillagd fråga") istället för Table.Distinct(#"Tillagd fråga", {"Ordernummer"}) Eller att du i alla fall lägger på både datum och produkt som filterkolumner Testa att köra med formler istället? Det här ger en rå sammanslagning av tabell1 och datadelen av tabell2 =VSTACK(Tabell1[#Alla];Tabell2) Ta bort dubbletter (utan att ange någon kolumn= alla kolumner jämförs) =UNIK(VSTACK(Tabell1[#Alla];Tabell2)) Eller så här om du bara vill ha ut data från tabell2 som är inlagt efter den sist inlagda i tabell1 (datum, ännu bättre om du har med tid. annars måste du vänta tills en dag är "färdig") =VSTACK(Tabell1[#Alla];FILTER(Tabell2;Tabell2[Datum]>MAX(Tabell1[Datum]))) Problemet är naturligtvis att det sammanslagna hamnar i en ny tabell. Tabell1 är oförändrad. Så du måste en gång om dagen (ish) manuellt/script hämta hela den sammanslagna tabellen till tabell1 så att den innehåller allt gammalt innan du lägger på nya data. Annat: Jag är tyvärr inte inläst på "power automat" (menyn Automat i Din excel). Men jag tror att det finns färdiga funktioner för att göra precis det du vill. Eftersom "automat" inte har samma säkerhetsbegränsnngar som VBA så borde vem som helst få köra det i din organisation. Kolla om det finns något här- jag är som sagt var inte inläst och kan inte riktigt bedöma: https://learn.microsoft.com/en-us/office/dev/scripts/resources/samples/combine-worksheets-into-single-workbook I exemplet handlar det nog (?) om att skapa ett automatiskt flöde i en onedrive -mapp ("automat" kan ställas in så att det körs automatiskt så fort något läggs till i en mapp, t.ex din rapport). Men även om dina filer ligger utanför onedrive så borde du kunna skapa en knapp så att du kan starta jobbet manuellt. DAX distinct (union(bla bla, bla bla))
  20. Kan du inte slå ihop https://learn.microsoft.com/sv-se/power-query/append-queries och sedan ta bort dubbletter? Markera alla kolumner i förhandsgranskningsläget. Högerklicka och väl "ta bort dubbletter" Men det förutsätter förstås att du inte kan ha dubbletter inom samma ordernummer (typ 2 skor med samma ordernummer) Går man in på Start->avancerad redigerare blir den automatgenererade sammanslaging / dubblettrensningskoden någonting i stil med let Källa = Excel.CurrentWorkbook(){[Name="Tabell1"]}[Content], #"Ändrad typ" = Table.TransformColumnTypes(Källa,{{"ID", Int64.Type}, {"b", Int64.Type}, {"c", Int64.Type}, {"d", Int64.Type}}), #"Tillagd fråga" = Table.Combine({#"Ändrad typ", Sheet1}), #"Borttagna dubbletter" = Table.Distinct(#"Tillagd fråga") in #"Borttagna dubbletter" Där tabell1 är den ursprungliga huvudtabellen och "Sheet1" är frågan som hämtar dina uppdaterade data (t.ex från en mapp) Se upp med "Table.Distinct" och kolla att den blir rätt https://learn.microsoft.com/sv-se/powerquery-m/table-distinct När jag körde först så kollade den bara dubbletter i min ID-kolumn. Typ: #"Borttagna dubbletter" = Table.Distinct(#"Tillagd fråga", {"ID"}) Om man snabbläser "learn" länken så kan det vara så att du kan nöja dig med att kolla dubbletter det senaste dygnet. Men jag är inte säker.
  21. För att visa tid över 24 timmar så kan du ändra visningsformatet (Ctrl+1) Gå till Anpassat för att ta bort sekunder om du vill. Det är hakparanteserna runt [t] som gör att du kan visa mer än 24 timmar. Så här blir den enklaste koden för timmar och minuter: [t]:mm För att visa negativa tider måste du använda Macintosh datumsystem i dokumentet Arkiv>alternativ>avancerat>använd Macintosh datumsystem (långt ner) Men excels "Macintosh datumsystem" utgår ifrån 1904 istället för 1900 så datum blir 4 år och en dag fel om du kopierar mellan dokument med olika datumsystem.
  22. https://support.microsoft.com/sv-se/office/specifikationer-och-begränsningar-i-excel-1672b34d-7043-467e-8e27-269d656771c3#ID0EDBD=Office_2007 Blad i en arbetsbok: Begränsas av tillgängligt minne ************************ för att skapa bladen "automatiskt" kan du köra ett VBA-makro. Typ: [Alt]+[F11] för att öppna VBA editorn infoga->modul Klistra in något i den här stilen: Sub veckoblad() Dim i As Integer For i = 1 To 52 Sheets.Add After:=ActiveSheet Sheets(i).Name = "V" & i Next i End Sub kör koden [F5] Sen kan du radera modulen innan du stänger VBA-editorn
  23. MH_

    Roliga avigheter

    Jag uppskattade inte Höglund så mycket när han var aktiv. Men karln hade en hel del pärlor. Kul att minst en yngre förmåga (Ellen Sundberg) gjorde en hel coverplatta för flera år se:
  24. Jag antar att du jobbar i ett Windowsprogram? inte word online? Då finns Zoomen längst ner till höger på sidan. @Mikael ringade in det på sina bilder. Det finns även under menyn: VISA->zooma Där har du bl.a 100%, sidbredd osv. Personligen brukar jag trycka in [Ctrl] och använda rullknappen på musen (om du har en sån) När det gäller skrivaren brukar det vara enklast att fixa standardinställningar via windows Startknappen->kugghjulet->Enheter->din skrivare Ändra standardpapper osv.
  25. Frågeställaren avslutade frågan på ett annat forum. Om någon har samma problem kan det eventuellt ge en ledtråd: https://answers.microsoft.com/sv-se/msoffice/forum/all/hur-skapa-synliga-kantlinjer-och-låsta/de67a0eb-122c-4a80-b784-99834d35302d
×
×
  • Skapa nytt...