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-06-24T11:12:13+00:00

    Hej,

    Ja, jag har nog ingen egentlig syn på programmeringstankarna, utan dom skapas utifrån min nivå på självlärning under dom senaste två-tre åren. Jag känner ju själv att Sub-rutinerna sväller och blir onödigt långa och omständiga, men det beror ju på att jag inte testat, hört talas om eller i övrigt haft någon kunnig på omårdet som instruerat mig. . .

    Jag lär mig obeskrivligt mycket här, och det känns fantastiskt.

    Åter till koden för CmdDatum2, där du angav "If Not Intersect(Range("AI16:AI30"), Target) Is Nothing Then Blad2.CmdDatum2.Enabled = True". . .

    Behöver vi inte ha någon kod som gör CmdDatum2-knappen "otillgänglig" igen? Nu aktiveras den med ovan kod, och sedan när man klickar i övriga celler på bladet så ligger den kvar som "Enabled = True". . .

    /Hälsning MagnusG_68

    Var det här svaret till hjälp?

    0 kommentarer Inga kommentarer
  2. Anonym
    2019-06-23T13:18:33+00:00

    Det märks att vi har olika syn på programmeringstankarna ;-)

    Jag återkommer till detta och givetvis huvudspåret i det som ska göras, och förhoppningsvis kan jag ge en tydligare bild kring hur jag tänker vilket kanske också underlättar framöver. Hur jag tänker behöver inte vara det rätta, men att undvika långa isolerade, men lika, flöden och trådar i sin struktur är nog en sund strategi. Jag ska hålla det enkelt, annars får du säga ifrån. 

    Din fråga om enklare avsluta-knapp kan vi klämma in emellan då den är enkel att svara på.

    Om du vill fånga upp en händelse där användaren kan klicka/markera på ett gäng celler och från detta trigga en kod så behöver man inte plocka en cell i taget. Man kan använda kommandot Intersect.

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)

      If Not Intersect(Range("AI16:AI30"), Target) Is Nothing Then Blad2.CmdDatum2.Enabled = True

    End Sub

    Var det här svaret till hjälp?

    0 kommentarer Inga kommentarer
  3. Anonym
    2019-06-22T09:43:12+00:00

    Hej,

    Låter betryggande att "dom mörka molnen skingrat sig". . .  Jag tycker det låter mycket klokt att vi fokuserar på ETT STEG i taget. Vi löser först kodningen och strukturen för när man skapar NYTT "INO-NR", och därefter koncentrerar vi oss på att VISA befintliga och hur redigerade sådana ska "ramla in korrekt på bladet.

    Mina OptBut som jag nämner heter så som jag angav ovan: (Anmält(OpnAnm), Pågående(OpnPåg), Test(OpnTest), Implementerad(OpnImp)). Det som jag själv är lite konfunderad över är hur resp "TxtDatum1", "TxtDatum2" osv under tillhörande OptBut ska kopplas samman. . . ? Vilket villkorsförhållande ska gälla? Det är ju - enligt min mening - datumet som står i textrutan som ska styras in på bladet. Markeringen av OptBut-knappen är en visuell information om vart/vilket status ärendet har. Hoppas du förstår vad jag menar. . . .

    Slutligen skulle jag också vilja få tips på hur min "AVSLUTA-knapp" enkelt och smidigt via kod, blir AKTIV (Enable = True) när man klickar i någon av cellerna AI16-AI30 (kolumn nr 35). . .? Idag har jag en extremt lång och omständig Sub för detta. . .

    "Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    If ActiveCell.Address = "$AI$6" Then

    Blad2.CmdDatum2.Enabled = True

    ElseIf ActiveCell.Address = "$AI$7" Then

    Blad2.CmdDatum2.Enabled = True

    ElseIf ActiveCell.Address = "$AI$8" Then

    Blad2.CmdDatum2.Enabled = True

    ElseIf ActiveCell.Address = "$AI$9" Then

    Blad2.CmdDatum2.Enabled = True    

    . . . o.s.v!!

    /Vänlig Hälsning MagnusG_68

    Var det här svaret till hjälp?

    0 kommentarer Inga kommentarer
  4. Anonym
    2019-06-19T18:55:28+00:00

    Det känns genast mycket renare, och det åskmoln som började torna upp sig i horisonten verkar dra sig undan (för mig). En infallsvinkel per funktion och syfte är enklast, och nu verkar det greppbart.

    Midsommar närmar sig så har jag inget presenterat under torsdag eftermiddag så gissar jag något kanske finns tidigast söndag eftermiddag.

    En sak dock innan dess:

    "Det är hur som helst viktigt att samtliga registrerade datum för NÄR dom olika statusändringarna skett visas när man väljer att visa ett INO-NR, som ev ska redigeras"

    Detta gäller som du nämner när INO-NR visas. Men än så länge fokuserar vi på koden som ska spara nya/ändrade ärenden, t ex de datum som fortfarande ska in som du nämnde som steg 4. Så vi avvaktar en smula med hur INO visas. Ett steg i taget...

    När "Spara" funkar så hoppar vi på nästa steg, som jag gissar är välja/visa befintliga INO.

    SlutligenVad heter dina OptBut som är kopplade till de olika tidsparametrarna? Lika bra jag får till rätt namn direkt så vi inte skapar mer förvirring. Jag har bara namn på de tidigare som kopplades till kolumner före kolumn AE. Är namnen exakt samma som du skrivit inom parentes i steg 4?

    Var det här svaret till hjälp?

    0 kommentarer Inga kommentarer
  5. Anonym
    2019-06-19T09:41:23+00:00

    Hej,

    Ja, jag upplevs kanske förvirrad men det handlar nog mer om min okunskap och oerfarenhet av att skapa smarta enkla tydliga lösningar, samt att det är en utamaning i sig att beskriva önskade funktioner och upplägg som ska tolkas in korrekt. . . Jag uppskattar ditt tålamod.

    Till att börja med:

    Jag har rensat bort alla gamla knappar, SPn-but och textrutor på bladet och har nu endast EN kommandoknapp som är till för att ÖPPNA formuläret. Se bild nedan!

    Nu har Vi alltså ett koncept där vi öppnar ett formulär i vilket man antingen skapar nya Ino-Nr, eller tittar på befintliga. När formuläret öppnas via denna knapp så är formuläret "tomt", förutom att "txttoday" längst upp till vänster ska visa dagens datum som sedan tankas ner i B (2).

    Steg 2:

    Via formuläret kan man enligt min önskan sedan bläddra fram önskat Ino-Nr via "SpnInoNr" och "TxtInoNr" längst upp till höger på formuläret. Tillhörande data/info för resp Ino-NR hoppar fram allt eftersom man bläddrar. . . Detta ersätter min tänkta "VISA-knapp" som jag tagit bort på formuläret.

    Steg 3:

    Kodningen för "SPARA-knappen" på formuläret är gjord efter dina instruktioner fram till och med påverkande faktor  (Chb1-Chb6 samt Opn15-Opn18).

    Steg 4:

    För att få hela Subrutinen färdig måste även kodningen för att få med datumvalet för dom olika tidsparamtrarna (Anmält(OpnAnm), Pågående(OpnPåg), Test(OpnTest), Implementerad(OpnImp)) skrivas in. Hur?

    Här har jag en ide om att kunna se (belysa) vilken status ärendet har genom att låta den OpnBut vara vald ihop med datumet i motsvarande textruta. Här känns det som jag "fastnat i vinkelvolten". Det är hur som helst viktigt att samtliga registrerade datum för NÄR dom olika statusändringarna skett visas när man väljer att visa ett INO-NR, som ev ska redigeras. . .

    Här är vi nu. . .

    Hälsning MagnusG_68

    Var det här svaret till hjälp?

    0 kommentarer Inga kommentarer