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

short

Medlem
  • Antal inlägg

    136
  • Gick med

  • Senaste besök

Allt postat av short

  1. Jag ska lägga in en rullist i en cell på ett ark jag skapat. Sheets("Underlag").Select Sheets("Underlag").Range(Sheets("Underlag").Cells(38, 4), Sheets("Underlag").Cells(38, 7)).Select With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=ObjektKomp" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With Jag klarar inte av att undvika selectsatsen MEN jag måste ha två stycken för att det ska fungera. Bara: Sheets("Underlag").Range(Sheets("Underlag").Cells(38, 4), Sheets("Underlag").Cells(38, 7)).Select ger körfel men när jag väljer bladet först och sedan cellerna så går det. Jag fattar inte varför? /short
  2. Jag har stoppat in koden på följande sätt: For a = 0 To 2999 If Sheets("Arkiv").Cells(a + 2, 21) = "" Then Exit For Sheets("Innehåll").Cells(a + 2, 1) = Sheets("Arkiv").Cells(a + 2, 21) Sheets("Innehåll").Cells(a + 2, 2) = Sheets("Arkiv").Cells(a + 2, 1) With Sheets("Innehåll") .Cells(a + 2, 3) = .Range(.Cells(a + 2, 1)) & " " _ & .Range(.Cells(a + 2, 2)) End With Next a men den ger körfel 1004. Några tips?
  3. Jag försökte använda funktionen SAMMANFOGA i mitt program men jag fick bara körfel. Vad är felet? Sheets("Innehåll").Cells(a + 2, 3) = Application.WorksheetFunction.SAMMANFOGA( _ Sheets("Innehåll").Range(Sheets("Innehåll").Cells(a + 2, 1)), " ", _ Sheets("Innehåll").Range(Sheets("Innehåll").Cells(a + 2, 2))) /short
  4. Jag har spelat in följande makro för att klippa in det i ett program Range("L11:L510").Select With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=VtypLFC" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With Syftet är att skapa rullista i en kolumn med ett innehåll som hämtas från namnet VtypLFC. När jag kör får jag dock följande fel. -2147417848 Automation-fel Det anropade objektet har kopplats från sina klienter. -2147417848 Automation-fel Det anropade objektet har kopplats från sina klienter. Vad gör jag för att få det fungera? /short
  5. Jag skapar en arbetsbok och vill avsluta med att sända ett mail med arbetsboken som bilaga. Jag har försökt med följande kod: Meddelande = ("Härmed översändes arbetsboken") Adress = InputBox("Skriv in e-postadress") Set Bilaga = ActiveWorkbook Set objOutlook = CreateObject("Outlook.Application") Set objEBrev = objOutlook.CreateItem(0) With objEBrev .To = Adress .Subject = "Arbetsboken" .Body = Meddelande .Attachments.Add Bilaga End With objEBrev.Display men det spårar ur när bilagan ska läggas till. Vad är felet?
  6. I ett program har jag nedanstående kod For k = 1 To a - 1 p = Sheets("Registrering").TextBox1.Value q = Sheets("Lager").Cells(2, k + 1).Value If UCase(p) < UCase(q) Then Exit For Next k Det egendomliga är att allt kommer i bokstavsordning utom ord som börjar på å som kommer efter ä. Finns det någon förklaring eller åtgärd?
  7. short

    Range

    OK det var en bra förklaring. Jag har aldrig fattat att det förutsätter ett aktivt blad. Du brukar ofta skriva i dina råd att man ska undvika selectsatser men det här är tydligen ett fall där man måste aktivera ett visst blad eller stå där från början. När man skriver With som du rekommenderar måste man väl också stå på bladet eller ha det aktiverat eller selekterat? Eller menar du rent av att man inte behöver ha bladet selekterat så länge som koden står på bladet? [inlägget ändrat 2009-04-04 10:02:33 av short]
  8. short

    Range

    Jag har problem med Range-objektet.Jag använder ofta Sheets("AA").Range(Cells(1,1),(cells(2,2)).Metod Men ibland får jag körfel. Senast var det när jag använde MergeCells=True metod (eller det kanske är en egenskap). Egendomligt nog fungerar just denna konstruktion ibland vilket gör gåtan större för mig. Ibland står det att metoden inte kan användas ihop med den övriga satsen.
  9. Det hela fungerar utmärkr om KeyCode är 9 och ibland när koden är 13. För mig obegripligt så hoppar sidan ned ibland när KeyCode är 13. Inte bara ett steg utan flera trots att jag inte angivit någon scroll. Jagfattar inte vad de beror på.
  10. Låt oss säga att du har multiplikationstabellen i kolumner på ett excelark. I huvudet på varje kolumn står det "2" för tvåans tabell osv. Tänk dig att kolumnerna hanat i oordning så att efter 5 står 3:ans tabell. Du gör ett program som läser kolumnhuvudet och vill då stoppa in 3:ans tabell mella 2 0ch 4 dvs "på plats". Hela kolumnen ska följa med. Ta sedan samma exempel och ersätt huvudet med en sträng och gör samma sak så att kolumnerna kommer i stigande ordning efter kolumnhuvudet.
  11. Jag har ett antal kolumner som jag vill sortera efter en sträng som står i huvudet på kolumnen. Jag vill sedan låta kolumnerna byta plats. Jag har testa med UCase men det verkar inte fungerar inte när det gäller strängar som kan innehålla litet vad som helst. Jag har också försökt med denna kod Sheets("Lager").Range("A1").Select For a = 1 To 9 If ActiveCell.Offset(1, a) > ActiveCell.Offset(1, a + 1) Then Exit For Columns(a).Select Next a End Sub Koden verkar fungera en gång men vid nästa jämförelse åker man ur for trots att det som läses i cellerna redan stå i bokstavsording. Hur kan det komma sig???? [inlägget ändrat 2009-03-24 18:43:21 av short] [inlägget ändrat 2009-03-24 18:44:50 av short]
  12. Jag kom på lösningen av en slump ActivePrinter returnerade standardskrivarens namn. Innan jag bytte printer så lagrade jag undan printerns namn för att efter utskrift sätta ActivePrinter tillbaka tlll standardskrivaren.
  13. Jag har i ett program följande kod msg = ("Vill du skriva ut på standardskrivaren?") Värden = vbYesNo + vbQuestion Svar = MsgBox(msg, Värden, "Val av printer") If Svar = 6 Then ActiveWindow.SelectedSheets.PrintOut Else Application.Dialogs(xlDialogPrint).Show End If Väljer man en annan skrivare än standardskrivaren fungerar koden men nästa gång man får frågan och väljer tillbaka standardskrivaren får man i alla fall den andra skrivaren. Stänger man programmet och öppnar igen och sedan i första valet väljer standardskrivaren så blir det också standardskrivaren. Varför kan man inte gå tillbaka till standardskrivaren utan att först stänga programmet?
  14. Jag tog den kod du gav mig men ville komplettera med scrollning och gjorde då så här: Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = 9 Or KeyCode = 13 Then TextBox4.Activate ActiveWindow.ScrollRow = 15 End Sub Problemet blev då att scrollningen inträffade så fort jag skrivit ett tecken vilket som helst. Närmast av misstag gjorde jag då så här: Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = 9 Or KeyCode = 13 Then TextBox4.Activate If KeyCode = 9 Or KeyCode = 13 Then ActiveWindow.ScrollRow = 15 End Sub Då fungerade det utmärkt. Jag kunde skriva klart i boxen och sedan trycka på tab eller return. Men varför fungerde det? Hur kian datorn veta att när jag trycker andra gången så ska jag inte skriva något mer.
  15. Att lägga till en tredje knapp fungerar utmärkt med litet kod. Vilket härligt logisktproblem att lösa det med två knappar - går det överhuvudtaget? Om Sant sätt falskt resulterar ju i att man inte får dit en markering. Om man trycker på en markering som sitter där redan så går den ju inte att skilja från en tryckning som skall föra dit en markering när rutan är omarkerad. Missar jag något eller finns det en lösning med bara två knappar?
  16. Om man har en uppsättning alternativknappar som är tomma från början och man sedan sätter en punkt i en är det tydligen kört. Kan användaren inte bara ångra sig genom att ta den andra knappen utan också att ställa tillbaka knapparna så ingen är markerad?
  17. Ska man efter din kodrad sedan öppna standarrutan för utskrift och välja skrivare och trycka OK??
  18. Jag har en rätt strulig utskrift där jag plockar ihop en sida och ställer in marginaler mm innan jag skriver ut. Jag skull dock vilja att ge användaren en chans att i Windows ordinarie utskriftsruta välja annan skrivare än standardskrivaren innan jag gör i ordning min utskrift.: Tyvärr så sätter skrivaren igång med utskriften direkt när man trycker OK efter valet av skrivare. Jag har då plockat ihop sidan men inte hunnit med följande With ActiveSheet.PageSetup .LeftMargin = Application.InchesToPoints(0) .RightMargin = Application.InchesToPoints(0) .TopMargin = Application.InchesToPoints(0.236220472440945) .BottomMargin = Application.InchesToPoints(0.196850393700787) .HeaderMargin = Application.InchesToPoints(0) .FooterMargin = Application.InchesToPoints(0) .CenterHorizontally = True .Zoom = 79 End With ActiveSheet.PageSetup.PrintArea = "$A$1:$L$175" ActiveWindow.SelectedSheets.PrintOut ActiveWindow.View = xlNormalView Går det att lösa? Kan jag påverka någons normala utskriftsmall? [inlägget ändrat 2009-03-10 17:27:04 av short]
  19. Tack det fungerar men de värden som jag får när jag trycker ned en tangent är inte samma som förteckningen över keycode som finns i hjälpsystemet. Märkligt - jag som trodde stenhårt på dokumentationen.
  20. Det egendomliga är att koden bara tycks fungera med värdet 9 för tabb. Försöker man med konstanten för någon annan knapp händer ingenting. Nåja det fungerar för med tabb mig i alla fall. En fråga kvarstår dock. När man först öppnar dokumentet vore det elegant att markören står i första textrutan. Jag har försökt att köra TextBox1.Activate men det händer inte ett dugg. Finns det något sätt att ställa markören i första textrutan redo för inmatning?
  21. Verkar fungera bra. Antigen kör man tabb eller också shift+tabb med samma resultat.
  22. Jag har ett antal textrutor som ska fyllas i. Finns det något sätt via egenskaper eller annat som gör att man kan bläddra mellan de olika textrutorna i de fall man vill hoppa över någon. Jag har försökt testa med olika egenskaper men inte kommit på hur man gör - om det nu är möjligt.
  23. Naturligvis är det så. Jag rodnar.
  24. Det fungerar men jag förstår inte kodraden shTest.Name = strName innebär inte raden att de båda leden blir lika? I nästa rad testar man om de är olika. Hur kan svaret bli ja om det i raden före har satts till samma värde? Uppenbarligen betyder inte shTest.Name = strName att man sätter de båda leden lika men vad är förklaringen?
  25. Mja det visade sig att koden fungerar om man försöker döpa den nya fliken till ett namn som redan finns men om man använder otillåtna tecken t ex ? : * / \ [ ] så fugerar den inte. Den lägger då till ett blad som kallas "Blad X" där X är nästa bladnummer. Går det att få koden att fungera så att den sorterar bort namnförslaget om det finns ett otillåtet tecken någonstans i Bladnamnet?
×
×
  • Skapa nytt...