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

Sök

Visar resultat för taggar 'VBA'.

  • Sök efter taggar

    Skriv taggar separerade med kommatecken.
  • Sök efter författare

Innehållstyp


Forum

  • Datorhårdvara
    • Bildskärmar
    • Bärbara datorer
    • Grafikkort
    • Hårddiskar & Lagringsmedia
    • Ljudkort
    • Mac-hårdvara
    • Processorer, moderkort & minnen
    • Retro - datornostalgi
    • Skrivare
    • TV-kort
    • Hårdvara – övrigt
    • Arkiverat
  • Film, foto & bilder
    • Bildredigering
    • Film- och Videoredigering
    • Kameror
    • Mediaspelare – Media Player m fl
  • Internet & nätverk
    • Chattprogram - ICQ, MSN m fl
    • Driftstörningar hos operatörer, internet etc
    • Epostprogram
    • Internetuppkoppling
    • IP-telefoni
    • Nätverket - hårdvara
    • Nätverket - programvara
    • Surftips
    • Webbläsare
    • Internet – övrigt
  • Ljud och Musik
    • Ljudformat (mp3, aac, ogg m fl)
    • Musikskapande på datorn
    • Ljud & Musik – övrigt
  • Operativsystem
    • Windows 95/98/ME/NT/2000
    • Windows XP
    • Windows Vista
    • Windows 7
    • Windows 8 & 8.1
    • Windows 10
    • Windows Server
    • Linux & Unix
    • Mac OS X & Classic
    • Operativsystem - övriga
    • Arkiverade Windows-trådar
  • Program
    • CD/DVD-bränning
    • Kalkylprogram - Excel m fl
    • Mac-program
    • Ordbehandling - Word m fl
    • Presentation – PowerPoint m fl
    • Print - om trycksaker
    • Program - övriga
  • Spel
    • Datorspel
    • Konsoler & konsolspel
  • Säkerhet
    • Brandväggar
    • Skräppost
    • Virus, skadliga program & botemedel
    • Säkerhet - övrigt
  • Hemelektronik
    • DVD & Blu-ray
    • Hemmabio/HTPC
    • El & övrig hemelektronik
  • Mobilt
    • Surfplattor
    • Mobiltelefoner
    • Bärbart Ljud/Mp3-spelare
    • GPS
    • Handdatorer
    • Mobilt – övrigt
  • Tips inför köpet
    • Köpa/Bygga dator
    • Köpa datortillbehör och komponenter
    • Köpa kamera
    • Köpa gps
    • Köpa internetabonnemang
    • Köpa IP-telefoni och fast telefoni
    • Köpa mobila enheter
    • Köpa nätverksutrustning
    • Köpa/Bestämma program
    • Köpa tv, hemmabio och mediacenter
  • System- och webbutveckling
    • Databaser
    • Systemutveckling
    • Webbutveckling
  • Eforum
    • Diskutera Eforum
    • Buggrapporter och önskemål om Eforum
    • PC för Alla
    • Arkiverat: Smart-forumet
  • Övrigt

Hitta resultat i...

Hitta resultat som...


Datum skapat

  • Start

    Slut


Senast uppdaterad

  • Start

    Slut


Filtrera efter antalet...

Gick med

  • Start

    Slut


Grupp


Facebook


Linkedin


Hemsida


Twitter


MSN


ICQ


Yahoo


Jabber


Skype


AIM


Ort


Intressen


Min dator


IT-kunskaper

Hittade 31 resultat

  1. Jag har gjort en databas i Excel 2013 åt en kompis för hans stora skivsamling. Jag försöker att skapa ett automatiserat flöde där det enkelt ska gå att skriva ut etiketter ur samlingen att fästa på hyllor och lådor där skivorna förvaras. För detta ändamål har jag skapat tre etikettmallar i Word för olika tidsperioder (Mall 1 = 1950 - 1970. mall 2 = 1970 - 1990, mall 3 = Från 1990) som kan användas att märka upp de många lådor som skivsamlingen finns i. Jag har försökt hitta VBA-kod som kan bistå med detta så att man bara behöver klicka på en knapp i Excel-databasen för att automatiskt skapa en etikettserie i Word (mailmerge). Det verkar funka så långt att Word öppnar och påbörjar mailmerge med sen hänger sig programmet i flera minuter och Word kraschar. Så här ser min kod ut för första tidspannet (1950-1970): Private Sub Document_Open() Dim wd As Object Dim wDocSource As Object, wDocPath As String Dim strWorkbookName As String Set wDocSource = ThisDocument wDocPath = ThisDocument.Path strWorkbookName = wDocPath & "\Etiketter+Db.xlsm" On Error Resume Next Set wd = GetObject(, "Word.Application") If wd Is Nothing Then Set wd = CreateObject("Word.Application") End If On Error GoTo 0 wDocSource.MailMerge.OpenDataSource Name:= _ strWorkbookName, _ Connection:="Data Source=" & strWorkbookName & ";Mode=Read", _ SQLStatement:="SELECT * FROM `Db$`" With wDocSource.MailMerge .Destination = wdSendToNewDocument .SuppressBlankLines = True With .DataSource .FirstRecord = wdDefaultFirstRecord .LastRecord = wdDefaultLastRecord End With .Execute Pause:=False End With ActiveDocument.SaveAs2 FileName:= _ wDocPath & "\Etiketter_Pre-1970.docx", _ FileFormat:=wdFormatXMLDocument ChangeFileOpenDirectory _ wDocPath ActiveDocument.SaveAs2 FileName:= _ wDocPath & "\Etiketter_Pre-1970.docx", _ FileFormat:=wdFormatXMLDocument, LockComments:=False, Password:="", _ AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, _ EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData _ :=False, SaveAsAOCELetter:=False, CompatibilityMode:=15 End Sub Då jag kapar sekvensen efter SQLStatement (i.e. INNAN begäran om att fullfölja mailmerge) så verkar det gå bra, men då måste man "manuellt" välja "Slutför och koppla" för att etikettserien ska genereras och jag vill att hela processen ska funka automatiskt så att det bara är för användaren att skriva ut! Grunddelen av VBA-koden ovan har jag fått genom en makroinspelning och sedan har jag lagt till delar jag hittat på nätet. En märklig sak dock är att själva filtreringen jag gör underinspelningen i "Redigera mottagarlista" kommer av någon anledning inte med i koden - varför då? Jag har också prövat att lägga in "WHERE" argument i SQL-statement efter tips när jag Googlat runt men då hittar inte Word sökvägen till Excel-filen och dokumentet kan inte öppna! Känner spontant att detta bara måste funka men antagligen är det något knas med kodningen som ställer till det. Om det finns någon i forumet som har råkat ut för motsvarande och till äventyrs hittat en bra lösning vore jag stort tacksam för hjälp!
  2. Hej alla Excelkunniga! Har ett problem jag inte kan förstå hur det ska lösas. Har gjort en inventeringslista i Excel som jag vill kunna skriva ut etiketter på olika poster. Etiketterna kan ha tre olika symboler (bilder) i sig beroende på om posten skapades före ett visst årtal, mellan två år eller efter ett tredje årtal. Så jag har skapat tre wordmallar som jag vill anropa vid etikettutskrift från min Excelfil. Har snokat runt webben och landat i ett VBA-skript som verkade kunna göra jobbet. Jag har med mina något rudimentära kunskaper i VBA försökt anpassa skriptet att öppna beroende på vad man anger via en combobox: Före 1994, mellan 1994-2011 samt efter 2011. Jag har använt case-anrop för kommandona (se skript nedan) men när jag försöker köra det så öppnar Excel visserligen rätt Worddokument men skriptet stannar sedan och felmeddelande visas: Har prövat att modda skriptet på olika sätt, googlat efter lösning på problemet men inte lyckats finna vad som fattas. Nu står mitt sista hopp till om någon VBA-kunnig på Eforum kan hjälpa mig. Sub Etiketter() Call TaBortSkydd Dim ws As Worksheet Dim Opt As Integer, Result As Action Dim objWord As Object Set ws = ActiveSheet Opt = ws.Range("$O$1").Value Set objWord = CreateObject("Word.Application") objWord.Visible = True Select Case Opt Case Is = 1 Result = objWord.Documents.Open(Application.ActiveWorkbook.Path & "\Etiketter_1.docx") Case Is = 2 Result = objWord.Documents.Open(Application.ActiveWorkbook.Path & "\Etiketter_2.docx") Case Is = 3 Result = objWord.Documents.Open(Application.ActiveWorkbook.Path & "\Etiketter_3.docx") End Select ws.Range("$O$1").ClearContents Call Workbook_RefreshAll Call SkyddaBlad End Sub Med hopp om räddning...
  3. Jag har en matrikel där jag har infogat en tidstämpelfunktion som har funkat hyggligt men nu krånglar. Har prövat lite olika varianter men får vid varje uppdatering upp en dialogruta med "Ogiltigt proceduranrop eller argument". (Se bifogad bild.) Det är ett enkelt skript men jag blir inte klok på vad som felas - någon som vet bättre än mig? Bifogar skriptet som txt-fil! VBA Timestamp.txt Infogar texten direkt, förenklar kanske lite: Private Sub Worksheet_Change(ByVal Target As Range) Call Modul1.TaBortSkydd Application.EnableEvents = False ActiveSheet.ListObjects("Tabell2").Range.Select With Selection If Target.Column <= 13 Or Target.Column >= 15 Then Range("N" & Target.row).Value = Date End If End With Application.EnableEvents = True Call Modul1.Skydd End Sub /Mikael63, moderator
  4. Jag har en medlemsmatrikel på ett Excel-ark där jag behöver en funktion (ett Makro) som kan exportera medlemmars namn tillsammans med respektive epost-adress till en text-fil. Har kollat runt men inga exempel jag stött på verkar fungera så jag undrar nu om det finns någon vänlig själ som kan hjälpa mig? Jag vill kunna exportera innehållet i kolumn "A" (Namn) och kolumn "J" (E-postadress) men bara från de rader där medlemmen har en epostadress. Utdata på textfilen bör vara tabbavgränsat men det är inget absolut måste... Pls help...
  5. Hej, jag har x antal flikar där jag har olika färgscheman på kolumnerna. Jag tycker det är rörigt att behöva gå igenom varje enskild flik för att få fram dessa. Min tanke är att jag har gjort en summeringsflik (blad1) som har Variabler i y-led och fliknamn i x-led. Jag har försökt anpassa denna koden men får att att indexet är utanför intervall. Sub WorksheetLoop() Dim WS_Count As Integer Dim I As Integer ' Set WS_Count equal to the number of worksheets in the active ' workbook. WS_Count = ActiveWorkbook.Worksheets.Count ' Begin the loop. For I = 2 To WS_Count Worksheets("Blad" & I).Range("A2:A31").Interior.Color = Worksheets("Blad1").Range("B2:B31").Interior.Color Next I End Sub Jag har fortfarande inte löst hur jag skall göra för att ändra rangen för andra Range satsen, då den skall även skall stega ett steg per iteration. //Fredrik
  6. Hej! Har nu suttit och dammsugit webben efter lättbegripliga exempel på hur man skapar en mall i Word som uppdateras med vba-formulär utan någon större framgång. Är inte bra alls på vba och söker efter ett konkret exempel på kodsnuttar att använda för att designa en dokumentmall där en användare som ska skapa ett nytt dokument först får upp en dialogruta där rubrik, underrubrik, författare och datum matas in och att sedan mallen öppnar med dessa värden ifyllda på rätt ställen i mallen. Jag har fattat så pass att detta detta görs bäst med vba-kod som kopplas mot bokmärken i dokumentet. Kom så långt att jag designade ett formulär i VBA-editorn men når inte ända fram med kodningen mot bokmärkena. Se bifogad bild. Anybody?
  7. Hejsan Hur skulle ni tackla en uppgift som denhär: Gör en makro till en knapp som läser in 10 tal från användaren och skriver ut talen i de tio celler som användaren valt. Talen skrivs i cellerna så att först skrivs samtliga jämna tal efter varandra och sedan skrivs samtliga udda tal efter varandra.Talen måste vara sorterade( först sorteras de jämna talen och sedan de udda). Skulle uppskatta en Sub på detta, har så förbannat mycke projekt på gång med skolan och alla deadlines tar kål på mig, om någon är vänlig att använda sin tid på detta så uppskattas det stort deadline för dessa vba uppgifter jag har är 28.4 12:00 så hjälp före det vore toppen! Tack på förhand! /DJ
  8. Hejsan! Jag har lite kod som inte riktigt funkar som jag vill. När jag kommer till den sista raden kod där jag försöker ändra värde på variabeln FdVardeCell genom att minska den med markvarde händer något konstigt. Det blir en korrekt förändring på variabelvärdet men cellen som jag hämtade in det ursprungliga värdet till FdVardeCell ändras OCKSÅ. Det var inte planen. Varför händer detta? Kan jag gå runt problemet på något vis? (Jag har en stor grund-exceltabell som jag gör omräkningar utfirån till en annan tabell. Varje rad i grundtabellen ska bli till tolv nya rader. När en rad beräknas om har den en "flagga" benämnd "4". Grundtabellens värden får inte ändras så detta är en smärre katastrof.) ------------------------------------------------------------------------------------------------------------------ Dim searchRange As Range Dim FdGrundCell As Range Dim markvarde As Range Dim FdVardeUtmark As Range Set searchRange = Range("a10", Range("a10").End(xlDown)) Set markvarde = ActiveCell.Offset(0, -16) Set FdVardeCell = searchRange.Find(What:="4", LookIn:=xlFormulas, LookAt:= _ xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _ True, SearchFormat:=False).Offset(0, 35) FdVardeCell = FdVardeCell - markvarde ----------------------------------------------------------------------------------------------------------------- Någon som kan hjälpa mig?
  9. Hej! För att underlätta på jobbet försöker jag skapa ett makro som ska visa dolda blad, rader och kolumner den ska även ta bort filter men inte ta bort filtermode. Dvs den svarta knappen ska vara kvar. Detta makro vill jag köra varje gång excel öppnar. Så skrev en makro i en modul och sen försökte jag i PERSONAL.xls/This workbook be excel köra modulen varje gång arbetsboken öppnas. Testade först med Run ([Modul3]) det gick inte. jag fick "Kompileringsfel: En variabel eller procedur förväntades.Inte en modul" så testade med Call ("Modul3") Det gick inte heller. Då fick jag svaret "Kompileringsfel: En identifierare" Vad gjorde jag fel här? Vill helst slippa ha makrot i PERSONAL.XLS eftersom det ju snabbt blir rörigt. Testade dock att lägga all kod "direkt" under Workbook_open (). Gick inte heller. Koden ifråga ser ut så här Sub Synliggöra_allt() ' ' Makro3 Makro For Each Worksheet In ActiveWorkbook.Worksheets If Worksheet.Visible = False Then Worksheet.Visible = True End If Next Workheet For Each Column In ActiveWorkbook.Worksheets If Column.Visible = False Then Column.Visible = True End If Next Column For Each Row In ActiveWorkbook.Worksheets If Row.Visible = False Then Row.Visible = True End If ActiveworkSheet.Select ActiveSheet.ShowAllData End Sub Vad ska göra jag för att få det att funka? Har jag tänkt helt tokigt?
  10. Hej! Tror det här blir lite av en kluring. Jag har en tabell där min chef kan skriva i arbetsuppgifter som hen vill få utförda. Skulle vilja lägga in ett marko så att när en uppgift klassas som prio hög så skickas ett mejl till min epost med ett meddelande (förbestämt innehåll) Om de däremot anger prio akut så skickas det ist ett SMS med samma meddelande. Alls möjligt eller utanför VBAs kapacitet?
  11. Hej! Nu har jag ett problem som ni förmodligen löser lätt. Jag har ett blad (Material val) där jag har en lista på matrial som oftast ingår I beställningarna jag gör mot kund. På ett annat blad (Material) där skall min beställning skrivas in för att sedan gå till kund. I bladet (Material val) så anger jag bara antalet enheter som jag vill beställa genom att skriva antalet I Kolum "I2" I Kolum "A2" står det då en text vilken typ det är. Och så görs det i en massa kolummer. I bladet (Material) vill jag att det skall infogas typtexten i "A2"och antalet i "A4" från (Material val) när jag har anget en beställning i form av en siffra i kolummen "I" Om nu till exempel jag inte valt att beställa något i (Material val) kolum "I3", så vill jag inte få en tom rad i (Material). Utan jag vill att nästa beställning skall hamna raden under. Jag hoppas detta är begripligt.
  12. Hej, Jag har använder denna kod: från http://excel-macro.tutorialhorizon.com/excel-vba-insert-multiple-images-from-a-folder-to-excel-cells/#pinglist-container Sub AddOlEObject() Dim mainWorkBook As Workbook Set mainWorkBook = ActiveWorkbook Sheets("Object").Activate Folderpath = "C:\Users\Sumit Jain\Pictures" Set fso = CreateObject("Scripting.FileSystemObject") NoOfFiles = fso.GetFolder(Folderpath).Files.Count Set listfiles = fso.GetFolder(Folderpath).Files For Each fls In listfiles strCompFilePath = Folderpath & "\" & Trim(fls.Name) If strCompFilePath <> "" Then If (InStr(1, strCompFilePath, "jpg", vbTextCompare) > 1 _ Or InStr(1, strCompFilePath, "jpeg", vbTextCompare) > 1 _ Or InStr(1, strCompFilePath, "png", vbTextCompare) > 1) Then counter = counter + 1 Sheets("Object").Range("A" & counter).Value = fls.Name Sheets("Object").Range("B" & counter).ColumnWidth = 25 Sheets("Object").Range("B" & counter).RowHeight = 100 Sheets("Object").Range("B" & counter).Activate Call insert(strCompFilePath, counter) Sheets("Object").Activate End If End If Next mainWorkBook.Save End Sub Function insert(PicPath, counter) 'MsgBox PicPath With ActiveSheet.Pictures.insert(PicPath) With .ShapeRange .LockAspectRatio = msoTrue .Width = 50 .Height = 70 End With .Left = ActiveSheet.Range("B" & counter).Left .Top = ActiveSheet.Range("B" & counter).Top .Placement = 1 .PrintObject = True End With End Function från hemsidan, excel-macro för att läsa in bilder ur en mapp och föra in dom till ett excel dokument. Koden läser in filer i vertikal-led, men jag önskar att få in bilderna, horisontellt. Har försökt modifiera sista delen i koden (Function insert(PicPath, counter)) men får det inte att funka. Kan någon duktig person se hur man löser detta? Tack på förhand!! Mvh, Dennis Noubarpour
  13. Hej, Jag försöker skapa ett macro i VBA som ska instruera resten av koden att endast titta på raden med dagens datum i kolumn A. Total nybörjare när det kommer till VBA, har googlat mig fördärvad utan att bli mycket klokare. Någon som kan hjälpa mig? Mvh
  14. Hej, Jag vill markera 1 eller flera celler (oavsett rader), i en eller flera olika kolumner, och sedan via vba radera just de kolumner som innehåller markerade cell/er. Hur får jag koden att känna av att det är minst 1 cell markerad i en kolumn? Problemet är att jag måste ju börja med att ta bort kolumnen med högsta kolumnsiffran och gå neråt, annars tas inte alla "cellmarkerade" kolumner bort (eftersom de flyttas åt vänster för varje som raderas). Hur skriver jag detta i vba? /speedy1
  15. Hejsan! Jag har en fil med en massa "grundrader" som underlag för en massa beräkningar. Varje sådan grundrad genererar tolv nya beräknade rader. Varje grundrad har ett radnummer som kopieras till de nya raderna. För att öka läsbarheten har jag färglagt alla rader med ett jämt radnummer. Nu till mitt problem. Jag har inte kommit på hur man gör för att slippa "mellanlagra" resultatet av if-satsen i en separat cell (0,34). En 2 eller 1 beroende på om resultatet är sant eller falskt. Hur gör man för att komma förbi detta? Så här ser min kod ut idag: Sub BytBakgrundsfärg() ActiveCell.Offset(0, -32).Select ActiveCell.Offset(0, 34).FormulaR1C1 = "=IF(ISEVEN(RC[-33])=TRUE,2,1)" If ActiveCell.Offset(0, 34).Value = 2 Then GoTo Markera Else: Exit Sub End If Markera: ActiveCell.Rows("1:12").EntireRow.Interior.Color = rgbBeige End Sub
  16. Hej, Jag har skapat ett formulär, (frm1), där man fyller i olika uppgifter för tex. ett rum så som rumsnummer, golvyta,väggyta, fönsterstorlek etc. etc. Detta läggs sedan till i en ny rad i ett kalkylblad när man klickar på knappen "Lägg till". Så långt funkar allt. När man sedan gjort ett antal rader så har man kanske rum som är snarlikt ett tidigare rum. Då vill man ange rumsnumret och då ska data för väggyta kopieras in i textboxen för väggyta, golvyta i textboxen för golvyta osv. Formuläret, (frm2), med en textbox där man ska ange rumsnumret är också fixat men, nu till själva frågan. Hur får jag rumsnumret i textboxen i frm2 att kopiera in data från kalkylbladet till resp. textbox i frm1? Det skulle även vara önskvärt att kunna kopiera föregående uppgifter med en annan knapp. knappen för detta är skapad men jag har inte kunnat lösa funktionen för den. Jag har ca 20 st textboxar i frm1 så det hade underlättat väsentligt om detta gick att fixa. Anledningen till att jag vill ha in det i textboxarna är att jag förmodligen behöver kunna justera några siffror innan jag lägger in det i kalkylbladet. Tacksam för tips då jag inte kunnat hitta instruktioner på nätet till detta, vet heller inte riktigt vilka sökord man ska ange. Jag bifogar filen om det finns någon hjälpsam själ som vill/kan förbarma sig över detta. Tack på förhand.
  17. Hej, Har skapat ett Makro med hjälp av internet. Det ser ut så här: Sub Compare2WorkSheets(ws1 As Worksheet, ws2 As Worksheet) Dim ws1row As Long, ws2row As Long, ws1col As Integer, ws2col As Integer Dim maxrow As Long, maxcol As Integer, colval1 As String, colval2 As String Dim report As Workbook, difference As Long Dim row As Long, col As Integer Set report = Workbooks.Add With ws1.UsedRange ws1row = .Rows.Count ws1col = .Columns.Count End With With ws2.UsedRange ws2row = .Rows.Count ws2col = .Columns.Count End With maxrow = ws1row maxcol = ws1col If maxrow < ws2row Then maxrow = ws2row If maxcol < ws2col Then maxcol = ws2col difference = 0 For col = 1 To maxcol For row = 1 To maxrow colval1 = "" colval2 = "" colval1 = ws1.Cells(row, col).Formula colval2 = ws2.Cells(row, col).Formula If colval1 <> colval2 Then difference = difference + 1 Cells(row, col).Formula = colval1 & " " & colval2 Cells(row, col).Interior.Color = 255 Cells(row, col).Font.ColorIndex = 2 Cells(row, col).Font.Bold = True End If Next row Next col Columns("A:R").ColumnWidth = 25 report.Saved = True If difference = 0 Then report.Close False End If Set report = Nothing MsgBox difference & " Celler innehåller olika data! ", vbInformation, " Compare 2 work sheets" End Sub Makrot jämför 2 st blad med varandra. Skapar upp ett nytt blad och visar olikheterna i det nya bladet. Det jag skulle vilja ha med är artikelnumret från kolumn C till det nya bladet. Överkurs är att även plocka bort alla rader där det inte har skett några förändringar.
  18. Hej. Är helt ny inom området makro och har kört fast med en grej så hoppas någon har något bra tips. Jag har skapat ett Excelark som jag ska använda som mall i fortsättningen. I arket har jag gjort en summering med en massa kostander osv. På summeringssidan har jag skapat en knapp som jag kopplat ett makro till, som fungerar på följande sätt: Om jag markerar en viss cell på summeringssidan och sedan trycker på knappen jag skapat så öppnas en nytt blad som får namnet med den markerade cellens innehåll, tex på summeringssidan finns en cell som heter BCB.1, om jag står i den cellen och trycker på knappen så öppnas en ny sida som heter BCB.1 För varje ny sida som skapas infogas även en tabell som jag har lyckats koda. Detta fungerar precis som det ska. Nu till problemet. Det jag vill nu ska hända är att. När man skapar en ny sida via knappen, vill jag även att viss data från summeringssidan ska kopieras och klistras in i den ny sidan som skapas på en bestämd plats. Det är inte samma data som ska kopieras från summeringssidan hela tiden, utan tex. cell B:7 och C:8 ska kopieras från summertingssidan och klistras in i sida BCB.1, och cell B:10 och D14 för en annan sida jag skapar. Får inte till koderna rätt. Har prövat med att spela in makron där jag kopierar visa celler och klistrar in sedan men utan att få det att fungera så som jag vill. Hoppas ni förstår mitt problem och ni kan hjälpa mig, håller på att bli tokig!
  19. Hej, behöver hjälp med att skapa en makro som sumerar variabler för att nå följande resultat: exempel i excel där kolumner A1: anka - B1: m,k A:2 anka - B2: k,t A3: apa - B3: k,m A4: apa - B4; ö A5: apa - B5: k resultat: anka m=1, k=2, t=1 apa k=2, m=1, ö 1 Tack på förhand. mvh rosei
  20. har dykt upp ett mystiskt fel i en bok jag utvecklat. Helt plötsligt, utan föranliggande orsak (enl. användare) har samma bok på flera skilda datorer börjat krascha när viss kod ska köras (kod som i praktiken kopierar över data från två sidor i boken till en ny bok och sparar den). När koden startas kommer följande dialog upp varefter Excel kraschar. Normalt ska en ny bok skapas bland det första som sker men inte ens det sker. Excel blinkar några gånger och sedan kommer det där upp. I koden förekommer lite anrop till Application, som Application.Calculation. Application.EnableEvents har använts men det har jag tagit bort nu. Ska göra ett försök att reparera/installera om Excel på datorerna se om det hjälper. Användarna har Excel 2013. När jag testat i Excel 2010 kan jag ej replikera felet. Sökning på nätet gav inte mig mycket. Har MS släppt någon uppdatering, av Excel 2013, nyligen som kanske spökar? Någon som vet råd?
  21. Då man skapar en rapport med rapportguiden, kan man välja sorteringsordning. Ex: en enkel tabell med bara Namn och Ort, båda indexerade, dubbletter tillåtna. Primärindex automatisk räknare. Rapportguiden ger mig möjlighet att lista tabellen i antingen Namn- eller Ort-ordning. I en mer komplex tillämpning vill jag läsa tabellen i en VBA-subrutin, se bifogade. Subrutinen ger mig posterna i inskriven ordning, dvs efter primärnyckeln. Går det på något sätt att komplettera koden med val av sorteringsordning, baserad på fältens index, eller separat definierat index? Exemplet är hämtat ur "Access 2013 for Dummies", sid 631. Tacksam för tips och råd. Matrikel.txt
  22. Hej! Jag gör ett makro i Excel 2010. Makrot går igenom en kolumn i ett kalkylblad uppifrån och ner och läser in cellens innehåll i en variabel. Om cellens innehåll uppfyller vissa kriterier t.ex. har värdet "liten" eller är tom så ska hela raden tas bort. Jag har gjort en liten "sub" som gör detta. (suben är bara 2 rader, så kanske lite onödigt). När suben har raderat raden så vill jag att markören (cellpekaren) ska vara i samma kolumn som tidigare (fast på raden under). Markören placerar sig emellertid i kolumn A och då måste jag flytta den i sidled till rätt kolumn innan jag kan fortsätta att gå igenom kolumnen. Kan man på ett listigt sätt få makrot att komma ihåg i vilken kolumn markören befann sig innan den tog bort raden? Tacksam för goda tips.
  23. Book1.xlsxHej, Jag är väldigt ny på det här med VBA och har hittat ett exempel på nätet (https://www.youtube.com/watch?v=t3TQ49duBgQ) som mer eller mindre gör det som jag skulle vilja ha göra. Har försökt kopiera macrot och anpassa det efter mina önskemål. Tyvärr måste jag missat något för jag får det inte rikigt att fungera utan får ett felmeddelande (Run_time error '13' Type mismatch). Det jag vill att macrot ska göra är att kopiera från blad "P&L", E6:E37, till blad "Statistics" som värden, vill inte att formler ska följa med. Var det ska klistras in beror på vilken siffra som står i cell L1 i "P&L" och sedan ska den "hitta" motsvarande siffra i Q3-3AB i "Statistics". Det ska klistras in i kolumnerna Q-AB raderna 4-35. Macrot som jag provat in ser ut enligt nedan. Bifogar fil utan macro. Sub CopyTotals() Dim WSD As Worksheet Set WSD = Worksheets("P&L") Dim WSS As Worksheet Set WSS = Worksheets("Statistics") ValueToFind = WSD.Range("L1").Value CopyToColumn = WSS.Columns(17).Find(What:=ValueToFind, _ After:=WSS.Cells(1, 2), _ LookIn:=x1Values, _ LookAt:=xlWhole, _ SearchOrder:=x1ByRows, _ SearchDirection:=x1Next, _ MatchCase:=False, _ SearchFormat:=False).Column MsgBox "Copy to column" & CopyToColumn 'Copy from WSD WSD.Range("E6:E37").Copy 'Paste Special to WSS WSS.Cells(CopyToColumn, 17).PasteSpecial _ x1PasteValues End Sub
  24. Hej, Jag har ett långt worddokument där det förekommer olika ID-nummer. Gemensamt för alla är att det börjar med ID:XXXXX. Jag har även ett exceldokument där förhoppningsvis alla dessa ID-nummer också ska finnas. Det är det jag vill att mitt program tar reda på. Jag vill alltså: 1: Hitta alla nummer efter”ID:” i mitt worddokument. 2: Söka efter dessa i mitt exceldokument 3: Redovisa detta, dvs. vilka av ID-numrena i worddokumentet finns i excel och vilka finns inte. Har letat på internet men hittar inget som är riktigt så som jag vill ha det. Oerhört tacksam för tips.
  25. Tjenis! Jag är väldigt ny inom VBA och har stött på ett problem och skulle väldigt gärna behöva lite hjälp. I en workbook har jag två sheets. På sheet1 har jag massor med data som jag själv lägger in från ett system manuellt. På "Sheet2" har jag två kolumner där talen i kolumn B matchar med talen i kolumn BA "Sheet1". Det jag vill göra att makrot ska göra är: Starta på rad2 i Sheet1, där ska den kolla numret som finns i Kolumn BA. Därefter ska den hitta samma värde fast på kolumn B i Sheet2. När den hittat det värde ska den skapa en blankrad raden under det funna värdet i Sheet2. Sedan ska hela raden från Sheet1 kopieras och klistras in på den tomma raden i Sheet2. Sedan ska den fortsätta så hela vägen tills det inte finns några rader med data kvar i Sheet1. OBS att samma nummer kan förekomma flertalet gånger i Sheet1 kolumn BA men det står bara en gång vardera i Sheet2 kolumn B. Sheet2 fungerar för att organisera så därför om det finns flertalet av samma tal i Sheet1 som matcher så lägger dem sig bara under varandra. Jag vill också att man ska kunna uppdatera Sheet1 genom att lägga till ny data där (i samma struktur som innan då). Om jag då trycker på makro-knappen igen vill jag inte att den ska kopiera in dem raderna som den redan kopierat för då kommer jag få massa dubbeldata och det är inte bra sedan när man ska göra pivot-tabeller, diagram osv.... Jag är som sagt inte så bra på VBA och har letat mycket på internet och skrapat ihop den här koden, problemet är bara att den kopierar den rad2 från Sheet1 in till rad2 på Sheet2 men sen hoppar den längst ner till sista raden i Sheet1 som är tom och klistrar in tomma rader under varje tal i Sheet2 istället.. Function DoOne(RowIndex As Integer) As Boolean Dim FG Dim Target Dim Success Success = False If Not IsEmpty(Cells(RowIndex, 2).Value) Then FG = Cells(RowIndex, 53).Value Sheets("Sheet1").Select Set Target = Columns(53).Find(FG, LookIn:=xlValues) If Not Target Is Nothing Then Rows(Target.Row).Select Selection.Copy Sheets("Sheet2").Select Rows(RowIndex + 1).Select Selection.Insert Shift:=xlDown Rows(RowIndex + 2).Select Application.CutCopyMode = False Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Cells(RowIndex + 3, 2).Select Success = True End If End If DoOne = Success End Function Sub TheMacro() Dim RowIndex As Integer Sheets("Sheet2").Select RowIndex = Cells.Row While DoOne(RowIndex) RowIndex = RowIndex + 3 Wend End Sub Är tacksam för all hjälp!
×
×
  • Skapa nytt...