VBA-kod excell 2010

Anonym
2019-05-22T13:19:42+00:00

Hej P3excel!

Jag sitter med likartade funderingar som vi haft tidiagre, men i ett annat projekt med ett excelldatablad jag byggt upp för att samla  och koppla innovationsideer från min arbetgrupp.

Min första fundeirng är hur jag enklast skriver kod för att styra inmatad textbeskrivning från "txtÄ1" i formulär (UserForm1) där jag har fyra kategorival som väljs via checkboxar (ChbFörvärv(D), ChbAdmin(E), ChbBuissness(F), ChbModell(G)).

Beroende på vilken av dessa checkboxar som är vald, ska texten i txtÄ1 hamna på Blad1 och antingen i kolumn D, E, F eller G beroende på Chb-valet.

Beorende på om det är ett HELT NYTT "case", dvs nytt innovationsnummer, så ska allt styras ner mot första lediga rad.

Alternativet är att man väljer ett BEFINTLIGT Ino-NR och då ska tetxten styras ner till den raden och dom kolumnerna.

Jag stannar där med mina frågor och hoppas än en gång på ditt ovärderliga stöd i detta.

//MagnusG_68

Microsoft 365 och Office | Excel | För hemanvändning | Windows

Låst fråga. Den här frågan har migrerats från Microsoft Support Community. Du kan rösta på om det är till hjälp, men du kan inte lägga till kommentarer eller svar eller följa frågan.

0 kommentarer Inga kommentarer

51 svar

Sortera efter: Mest användbara
  1. Anonym
    2019-07-08T14:13:54+00:00

    Hej igen. . .

    Vid föregående svarsmail, så hade jag missat att sätta "Ino-NR01" i cell A06, så att "TxtInoNr" hade något att leta efter. . . när jag gjorde så, kördes koden en bra bit ytterligare, men fastnade då vid nedanstående. . .  Varför??!!

    Hälsning MagnusG_68

    Var det här svaret till hjälp?

    0 kommentarer Inga kommentarer
  2. Anonym
    2019-07-08T09:47:07+00:00

    Hej,

    Det som händer när jag kör koden är:

    . . . blir inte "klok" på vad det kan vara som är "okänt" för Subrutinen. . .

    Jag har endast ETT blad i excellboken. Blad2(Blad1) som du ser i projekthierarkin. Ska vi ändra "Set ws = Worksheets(1)" ? Som jag uppfattat dig så är det som står inom parantes som är det "verkliga bladnumret". . .

    /Hälsning MagnusG_68

    Var det här svaret till hjälp?

    0 kommentarer Inga kommentarer
  3. Anonym
    2019-07-08T08:22:22+00:00

    Ok, då får vi börja debugga det hela.

    En sak först så vi inte gör några antaganden. Bladet som du jobbar mot, där allt landar, det är väl det första (enda) bladet du har? Det är vad set ws = pekar på. Om det inte är det första bladet, ja då måste det ju ändras.

    Nu till detektivarbetet.

    Kör koden som du gjort, och när felmarkeringen visas ska vi kolla lite värden och se vad koden jobbar med.

    I vbe, öppna Direktfönstret via Ctrl+G.

    I detta fönster skriver du:

    ? TxtInoNr.Text

    och trycker Enter.

    Svaret blir vad som finns i din InoNr-textruta, dvs det som koden söker i inom A6:A1000.

    Kopiera detta svar och gå till kolumn A och gör en vanlig sökning efter detta i den kolumnen och se om du får träff.

    Vi stannar här och ser vad du får.

    Var det här svaret till hjälp?

    0 kommentarer Inga kommentarer
  4. Anonym
    2019-07-08T06:31:33+00:00

    Hej,

    Alla justeringar och korrigeringar enligt din instruktion ovan har verkställts, dock fastnar körningen på samma ställe hela tiden. . . (!) Vad är det Subrutinen "inte kännerigen", undrar jag. . . 

    OBS!! Jag har skrivit om raderna manuellt ovanför det som var inkopierat och därefter "delitat" dom inkopierade raderna.

    Hälsning; MagnusG_68

    Var det här svaret till hjälp?

    0 kommentarer Inga kommentarer
  5. Anonym
    2019-07-07T10:21:51+00:00

    Två saker i koden:

    1. Jag har under ca 20 år av vba-kodande aldrig stött på felmeddelandet "identifieraren under markören kan inte tolkas".

    Det är lite av en vag text, lite som Error 1004, men där 1004 är klart simplare att lösa. Om du kommer koda i framtiden kommer 1004 bli ett bekant ansikte ;-)

    De två rader jag pekar på i bilden nedan vid de gröna blobbarna (punkt 1) gör samma sak. Den nya kod jag gav senast räcker för radsökningen efter gällande InoNr så kodraden med Set c ska inte vara kvar, men den genererar inga fel så det är inte problemet.

    Det gav mig dock en hint om att raden du får gulmarkerat ska fungera. Om du inte får fel på raden med Set c så ska det inte bli fel på denna rad heller. Det finns en liten skillnad också från tidigare - ws har ramlat bort före ordet Range, det ska stå ws.Range. Men detta genererar inga fel, men du borde lägga till det. Min gissning på vad som går fel är om du kopierat texten från forumet och klistrat rakt in i vbe. Jag fick problem när jag skulle svara senast, och jag märkte att texten som jag klistrat in från min vbe inte betedde sig korrekt med radbrytningar och liknande. Jag kunde inte klicka "Skicka", och fick börja om, men nåt (osynligt) skräp kan ligga och skvalpa som du får med från texten i detta forum. Rekommendationen är att skriva in koden för hand. Ta bort allt fr o m raden Set c till End If som ses i bilden, och skriv in texten igen manuellt. Du får kolla inlägget tidigare för raden rad=ws.Range så du får med hela texten.

    Exakt den text som jag skickade senast fungerar på min dator, det enda som skiljer är vad som eventuellt kan stå i din textbox för InoNr, så där ligger allt i dina händer att det är ett giltigt värde (men även om det skulle stå "gurka" i din textbox skulle du inte få det meddelande du fick).

    1. Jag såg att du inte deklarerat variabeln nr överst bland Dim-satserna. Du bör lägga till nr också, som ska deklareras som Long. Detta ger inga fel, men kan ställa till med obehag om man inte har koll på sina variabler.

    Att du inte fått någon notis om missad variabeldeklaration betyder att du inte satt detta som "ett måste" i inställningarna.

    Ett tips, gör så. Det gör du i denna meny:

    I vb-editorn går du till menyn Verktyg, sen Alternativ, och i fliken Redigerare finns en checkruta som heter "Variabler måste deklareras", markera den. Om du gjort rätt kommer du överst i alla kodfönster numera se texten "Option Explicit".

    Slutligen. Du har rätt angående TxtIno1.Text, jag har helt enkelt inte hängt med i dina ändringar av vad ärendetextboxen heter. Trodde detta var kopplat till InoNr på något sätt, vilket det uppenbarligen inte var.

    Var det här svaret till hjälp?

    0 kommentarer Inga kommentarer