Avatar billede daki Juniormester
28. oktober 2004 - 09:41 Der er 2 kommentarer og
2 løsninger

Macro til kopiering af celler

Jeg skal have lavet macro som gør følgende:

1. indsæt 'tekst1' i celle A1, kopiere nedad indtil celle i kolonne B er tom. Slet denne linie. (med tom celle i kolonne B)
2. indsæt 'tekst2' i celle i kolonne A, kopiere nedad indtil celle i kolonne B er tom. Slet denne linie.
3. indsæt 'tekst3' i celle i kolonne A, kopiere nedad indtil celle i kolonne B er tom. Slet denne linie.
4. indsæt 'tekst4' i celle i kolonne A, kopiere nedad indtil celle i kolonne B er tom. Slet denne linie.
5. indsæt 'tekst5' i celle E1, kopiere nedad indtil celle/række er tom.
6. indsæt 'tekst6' i celle G1, kopiere nedad indtil celle/række er tom.
7. lave kolonne F+H om til tal med (-),tusindtalsseparator og 2 decimaler.

På forhånd tak.
Avatar billede palle_ib Nybegynder
03. november 2004 - 00:07 #1
Denne skulle gøre det du forespørger!

Sub DataTekst()
  Dim x As Integer
  Dim sTekst As String
  Range("A1").Select
  For x = 1 To 4
      Select Case x
        Case 1: sTekst = "Tekst1"
        Case 2: sTekst = "Tekst2"
        Case 3: sTekst = "Tekst3"
        Case 4: sTekst = "Tekst4"
      End Select
      Do
        ActiveCell.Value = sTekst
        ActiveCell.Offset(1, 0).Activate
      Loop Until IsEmpty(ActiveCell.Offset(0, 1).Value)
      ActiveCell.EntireRow.Delete
  Next
 
  Range("B1").Select
  Range("B1", ActiveCell.Offset(0, 0).End(xlDown)).Offset(0, 3).Value = "Tekst5" ' B+3=E
  Range("B1", ActiveCell.Offset(0, 0).End(xlDown)).Offset(0, 4).Style = "Comma"  ' B+4=F
  Range("B1", ActiveCell.Offset(0, 0).End(xlDown)).Offset(0, 5).Value = "Tekst6" ' B+5=G
  Range("B1", ActiveCell.Offset(0, 0).End(xlDown)).Offset(0, 6).Style = "Comma"  ' B+6=H
 
End Sub
Avatar billede daki Juniormester
09. november 2004 - 12:28 #2
Det var lige det jeg skulle bruge, tak...

Tillæg:
Kan man lave en box, hvor man indtaster de 6 tekster
Avatar billede palle_ib Nybegynder
17. november 2004 - 11:48 #3
Spørgsmålet er ikke helt forstået.
Mener du at teksten kan skifter fra gang til gang hvorfor du egentlig gerne vil have en input box hvor du kan vælge havd du skal skrive hver gang du kører macroen?

Hvis ja så kommer løsningen her.

Sub DataTekst()
  Dim x As Integer
  Dim sTekst As String
  Range("A1").Select
  For x = 1 To 4
      Select Case x
        Case 1: sTekst = InputBox("Tekst1", "Indsæt teksten du vil have i kononne 1 - område 1", "Tekst1")
        Case 2: sTekst = InputBox("Tekst2", "Indsæt teksten du vil have i kononne 1 - område 2", "Øst")
        Case 3: sTekst = InputBox("Tekst3", "Indsæt teksten du vil have i kononne 1 - område 3", "Syd")
        Case 4: sTekst = InputBox("Tekst4", "Indsæt teksten du vil have i kononne 1 - område 4", "Vest")
      End Select
      Do
        ActiveCell.Value = sTekst
        ActiveCell.Offset(1, 0).Activate
      Loop Until IsEmpty(ActiveCell.Offset(0, 1).Value)
      ActiveCell.EntireRow.Delete
  Next
 
  Range("B1").Select
  Range("B1", ActiveCell.Offset(0, 0).End(xlDown)).Offset(0, 3).Value = InputBox("Tekst5", "Indsæt teksten du vil have i kononne E") ' B+3=E
  Range("B1", ActiveCell.Offset(0, 0).End(xlDown)).Offset(0, 4).Style = "Comma"  ' B+4=F
  Range("B1", ActiveCell.Offset(0, 0).End(xlDown)).Offset(0, 5).Value = InputBox("Tekst5", "Indsæt teksten du vil have i kononne G") ' B+5=G
  Range("B1", ActiveCell.Offset(0, 0).End(xlDown)).Offset(0, 6).Style = "Comma"  ' B+6=H
 
End Sub

Så er det vist point tid ;o)
Avatar billede daki Juniormester
18. november 2004 - 20:23 #4
Det var lige nøjagtigt det jeg mente.
Og det fungere bare, hermed points tid :-)
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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