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

Versionsproblem


short

Rekommendera Poster

Jag har ett VBA-program som är skrivet i Excel 97 2003. Det har gått bra att köra tom Office 2010.

Nu har Excel 2013 kommit och när man då öppnar programmet körs det i kompabilitetsläge. När jag ska fylla i textrutorna i ett inmatningsformulär och använder tab-tangenten flyttar sig kursern till nästa ruta vilket jag programmerat. Problemet är att det jag matar in blir mikrotext som inte går att läsa. Texten blir normalstor igen om man åter klickar på tab-tangenten eller klickar någon annanstans i formuläret. Klickar man igen på samma ruta blir det Mikrotext igen. Om man konverterar programmet gör det ingen skillnad utan samma mikrotext blir resultatet.

Till saken hör att Excelversionen är slö och ofta inte svarar. Något sådant förekommer inte om jag öppnar en ny bok som inte är gjort i Excel 97 3003.

Länk till kommentar
Dela på andra webbplatser

jadu, har inte Excel 2013 och kan inte testa/återskapa men:

 

Om du lägger in nya GUI-element i filen i Excel 2013, dvs nytt inmatningsformulär med textrutor, fungerar detta som det ska?

Fungerar detta formulär, om du har behov av det, i tidigare versioner av Excel?

 

Det låter dock som om detta kanske inte är enda felet, att det finns annat i koden/boken som fungerar som det ska.

 

Att hitta vad det är som felar kan gå men det är lite omständligt. Om det är kod som bråkar kan man ringa in denna del via exempelvis lägga in Debug.Print-kommandon lite här och där i koden och helt enkelt skriva ut en tidsstämpel och namn på rutin. Kanske att man kan se var det är den stannar upp.

 

Om formler - blir boken snabbare om du slår av automatiska beräkningar?

 

Men - hur mycket jobb vore det att bygga om boken från början? Ibland är det enklaste lösningen.

Länk till kommentar
Dela på andra webbplatser

jadu, har inte Excel 2013 och kan inte testa/återskapa men:

 

Om du lägger in nya GUI-element i filen i Excel 2013, dvs nytt inmatningsformulär med textrutor, fungerar detta som det ska?

Fungerar detta formulär, om du har behov av det, i tidigare versioner av Excel?

 

Det låter dock som om detta kanske inte är enda felet, att det finns annat i koden/boken som fungerar som det ska.

 

Att hitta vad det är som felar kan gå men det är lite omständligt. Om det är kod som bråkar kan man ringa in denna del via exempelvis lägga in Debug.Print-kommandon lite här och där i koden och helt enkelt skriva ut en tidsstämpel och namn på rutin. Kanske att man kan se var det är den stannar upp.

 

Om formler - blir boken snabbare om du slår av automatiska beräkningar?

 

Men - hur mycket jobb vore det att bygga om boken från början? Ibland är det enklaste lösningen.

Tyvärr är det mycket jobb att skriva om och dessutom vill jag helst att samma version ska fungera oberoende av vilken version av Excel användaren har.

Som ett första försök ska jag testa med detta

Private Sub TextBox1_GotFocus()
        ActiveSheet.TextBox1.FontSize = 15
End Sub

Kanske inte snyggt men vad gör man....

Länk till kommentar
Dela på andra webbplatser

ja, vad gör man.

men ta reda på vad det är som slöar ned boken, det kan ha samband.

Och testa lägga in nya komponenter i Excel 2013 och se hur de fungerar.

 

Ibland kan att bygga om boken enbart innebära att man kopierar/flyttar över blad och kod till en ny bok.

Länk till kommentar
Dela på andra webbplatser

ja, vad gör man.

men ta reda på vad det är som slöar ned boken, det kan ha samband.

Och testa lägga in nya komponenter i Excel 2013 och se hur de fungerar.

 

Ibland kan att bygga om boken enbart innebära att man kopierar/flyttar över blad och kod till en ny bok.

Mitt försök att lägga in litet kod som återställde Font-storleken fungerade inte. Jag funderar på att följa ditt råd och flytta över sidorna och koden från Excel 97 2003 till Excel 2013. Om man sedan kör en arbetsbok 2013 Excel på en äldre version så får vi se om det fungerar. Jag har ju inte använt några nya tricks som finns i Excel 2013. Har du någon erfarenhet om liknande "bakåtkörning"?

Länk till kommentar
Dela på andra webbplatser

Beroende på vad du gör...

Formler - använd inte formler som inte finns i tidigare Excel, inte tabellformat, pivot. Färger räknar Excel om till liknande.

 

Kod, där kan du lägga in versionskontroll så att äldre versioner av Excel kör det som fungerar där och nyare kör det som fungerar där.

Jag kan inte garantera att det kommer fungera smärtfritt men det kan göra det...

 

Dvs jag har inga vattenfasta råd.

 

men som jag frågat ovan, vad är det som sölar ned boken? VBA-koden eller formler?

Länk till kommentar
Dela på andra webbplatser

Beroende på vad du gör...

Formler - använd inte formler som inte finns i tidigare Excel, inte tabellformat, pivot. Färger räknar Excel om till liknande.

 

Kod, där kan du lägga in versionskontroll så att äldre versioner av Excel kör det som fungerar där och nyare kör det som fungerar där.

Jag kan inte garantera att det kommer fungera smärtfritt men det kan göra det...

 

Dvs jag har inga vattenfasta råd.

 

men som jag frågat ovan, vad är det som sölar ned boken? VBA-koden eller formler?

I versionen Excel 97 2003 så hade jag formulärtextrutor. Det var ett av de första programmen jag gjorde. Senare har jag helt gått över till ActiveX kontroller. Jag bytte helt enkelt ut några provrutor till ActiveX TextBoxar och då får jag inte problemet när jag senare kör i Excel 2013. Nu ska jag ändra alla textrutor vilket tar någon dag och så får vi se om det dyker upp några andra problem :unsure:

Länk till kommentar
Dela på andra webbplatser

Ja, det kan vara en bra idé. ActiveX-rutorna är mer flexibla men formulärkontrollerna stabilare minst sagt.

 

Stabila är vad man vill ha...

 

Har bland annat råkat ut för ActiveX-rutor som helt plötsligt skriver sina data på andra blad vilket kan få ganska absurda effekter i komplicerade böcker.

Länk till kommentar
Dela på andra webbplatser

Ja nu har jag prövat med allt men inget hjälper. Till sist skapade jag ett nytt dokument med textboxar i Excel 365 (inte 2013 som jag tidigare skrev). Programmet är en Trialversion som man får gratis för att pröva en tid. Resultatet blev där detsamma dvs texten förvandlades ibland till mikroskrift. Beror detta månne på att det är en Trialversion eller är det en bugg i programmet. Jag har faktiskt hittat en äkta bugg i Excel tidigare och då blev det fart på Microsoft.

Länk till kommentar
Dela på andra webbplatser

Jadu, det får vi leta reda på någon annan som vet.

 

Du har testat formulär och ActiveX-boxar? De senare kan du reglera storleken på texten i, de förra är fixa. Ska vara det. Ivartfall har varit det.

Länk till kommentar
Dela på andra webbplatser

Till slut hittade jag något som fungerar. Det visade sig att TextBox1.FontSize=10 var ett slag i luften för fontstorleken var inte ändrad i egenskaperna bara för ögat. När jag satte TextBox1.Enabled=False och sedan True fungerade det utan att texten blev liten.

 

Två frågor kvarstår:

1.Jag har ingen TextBox bland mina formulärkontroller. Finns det?

2. Är ActiveX lika instabila om de läggs på en UserForm

Länk till kommentar
Dela på andra webbplatser

UserForms är helt baserade på "ActiveX" komponenter. Där fungerar de bra, helt utan problem.

 

Ute på arbetsbladen fallerar implementationen.

 

nåja, bra att det ordnar sig för dig.

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...