Avatar billede mortenjo2 Nybegynder
31. marts 2004 - 09:53 Der er 17 kommentarer og
3 løsninger

VBA: Hvordan indsætter man tekst i excel ark, ved tryk på knap

Hej

Hvilken kode skal jeg skrive i vba, således at min faktura til sidst automatisk skriver mvh. når der trykkes på en knap.

der skal f.eks. stå:

tak for ordren

mvh. mig
Avatar billede martin_moth Mester
31. marts 2004 - 10:07 #1
"Til sidst"? I hvilken celle er det?

Har du en knap ved navn CommandButton1, ser koden nogenlunde således ud:

Private Sub CommandButton1_Click()
  Range("A1").Select  '<--- Skift til den celle du vil skrive i
  ActiveCell.FormulaR1C1 = "'Med venlig hilsen bla bla bla"
End Sub
Avatar billede mortenjo2 Nybegynder
31. marts 2004 - 10:52 #2
ok tak, det er også lige lykkedes mig.

mht. "til sidst", kommer det an på hvor lang fakturaen er,
er det muligt at indstille den til at indsætte "mvh." 2 celler
under sidst indtastede linie?
Avatar billede martin_moth Mester
31. marts 2004 - 10:54 #3
Så skal du bare finde den sidst indtastede linie. I hvilken kolonne findes den?
Avatar billede mortenjo2 Nybegynder
31. marts 2004 - 10:57 #4
den findes i kolonne j, j43.
Avatar billede martin_moth Mester
31. marts 2004 - 11:04 #5
Nu skriver du at den sidste linie er i J43 - men kom det ikek an på hvor lang fakturaen er?????

Hvis sidste linie ALTID er i række 43, så er det jo så simpelt som at skrive

  Range("J45").Select
  ActiveCell.FormulaR1C1 = "'Med venlig hilsen bla bla bla"


Hvis du først skal finde den sidste linie, og denne skal findes i kolonne J, så brug


Private Sub CommandButton1_Click() 
    Dim ws As Worksheet
    Dim lLastRow As Long
    Set ws = Sheets("Sheet1")
    lLastRow = ws.Range("J" & Rows.Count).End(xlUp).Row
    ActiveSheet.Cells(lLastRow + 2, 10).FormulaR1C1 = "'Med venlig hilsen"
    ActiveSheet.Cells(lLastRow + 4, 10).FormulaR1C1 = "'Anders And"
End Sub
Avatar billede mortenjo2 Nybegynder
31. marts 2004 - 11:39 #6
Den har problemer med:

lLastRow = ws.Range("J" & Rows.Count).End(xlUp).Row

hvad kan det være?
Avatar billede martin_moth Mester
31. marts 2004 - 11:44 #7
problemer?

Fejlmeddelse?
Avatar billede mortenjo2 Nybegynder
31. marts 2004 - 12:12 #8
run time error 91

object variable or with block variable not set
Avatar billede martin_moth Mester
31. marts 2004 - 12:20 #9
Du har copy-pastet HELE koden?

Og du har naturligvis rettet "Sheet1" til det dit ark hedder?
Avatar billede mortenjo2 Nybegynder
31. marts 2004 - 12:26 #10
Takker, det havde jeg gjort, men nu lykkedes det!
Avatar billede mortenjo2 Nybegynder
31. marts 2004 - 13:32 #11
Lige endnu et spørgsmål:
Hvordan får man vba til at indsætte en linie magen til den ovenover, lige
under den sidste linie. dvs. med formler

Dim ws As Worksheet
    Dim lLastRow As Long
    Set ws = Sheets("Faktura - Engelsk")
    lLastRow = ws.Range("J" & Rows.Count).End(xlUp).Row
    ActiveSheet.Cells(lLastRow + 2, 10).FormulaR1C1 = Rows("32:32").Select
    Selection.Insert Shift:=xlDown
   
    Range("A31").Select
    Selection.AutoFill Destination:=Range("A31:A32"), Type:=xlFillDefault
    Range("A31:A32").Select
    Range("D31").Select
Avatar billede martin_moth Mester
31. marts 2004 - 13:38 #12
Forstår ikke hvad du mener.

Skal den nederste linie kopieres en linie ned?
Avatar billede martin_moth Mester
31. marts 2004 - 13:39 #13
Og hvad er det for en kode du har vist - hvad skulle den gøre?
Avatar billede mortenjo2 Nybegynder
31. marts 2004 - 13:46 #14
ja den nederste linie skal kopieres en linie ned. koden er sammensat af det jeg fik af dig før og en indspillet makro.
Avatar billede martin_moth Mester
31. marts 2004 - 15:11 #15
Nårdu ikke helt ved hvad du laver, så pas på med indspillede macroer!!!!! Og pas endnu mere på med at blande din egen kode og Excels kode sammen...

Og du må ikke oprette det samme spørgsmål 2 gange:

http://www.eksperten.dk/spm/484215

Koden du skal bruge er:

    Dim ws As Worksheet
    Dim lLastRow As Long
    Set ws = Sheets("Sheet1")
   
    'Finder sidste række
    lLastRow = ws.Range("J" & Rows.Count).End(xlUp).Row
   
    'Kopiere sidste rækkes formel
    ActiveSheet.Cells(lLastRow, 10).Select
    Selection.Copy
   
    'Indsætter sidste rækkes formel nedenunder
    ActiveSheet.Cells(lLastRow + 1, 10).Select
    ActiveSheet.Paste
   
    'Skirver Mvh Anders and yderligere 2 linier nede
    ActiveSheet.Cells(lLastRow + 3, 10).FormulaR1C1 = "'Med venlig hilsen"
    ActiveSheet.Cells(lLastRow + 5, 10).FormulaR1C1 = "'Anders And"
Avatar billede martin_moth Mester
31. marts 2004 - 20:47 #16
Lukketid ?

:o)
Avatar billede mortenjo2 Nybegynder
07. april 2004 - 09:32 #17
Hvad hvis man skal have flere celler kopieret. I
mit forsøg indsætter den kun den først kopierede formel
i alle cellerne.
Avatar billede martin_moth Mester
07. april 2004 - 09:50 #18
Jeg vil ikke udtale mig om den kode du selv har lavet, jeg synes den ser meget mystisk ud.

Mit svar gør præcis det du spørger om:

Kopiere nederste celle i kolonne J en række ned, og indsætter et med venlig hilsen nederst i arket.

Var det ikke det du spurgte om?

Hvis du vil noget andet/mere, så fortæl hvad (eller luk dette og opret et nyt spørgsmål)
Avatar billede mortenjo2 Nybegynder
07. april 2004 - 10:55 #19
Har fået løst problemet. tak.

2. Kan man i vba programmere den til at slette alt 2 linier under sidste linie,
selvom der står formler i det?
Avatar billede martin_moth Mester
07. april 2004 - 17:10 #20
Hvis du har fået det løst, så accepter og opret et nyt spørgsmål.

Dit spørgsmål er sort snak:

Slette alt under sidste linie - hallo, sidste linie er jo netop den linie hvor der ikke står noget nedenunder, ergo er der ingenting at slette ;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester