Avatar billede rickie Juniormester
08. maj 2003 - 23:22 Der er 13 kommentarer og
2 løsninger

Opret data i henhold til anden kolonne

Hej!

Hvis jeg gerne vil oprette data i en kolonne som skal väre i ligeså mange celler som fex kolonnen ved siden af, kan dette lade sig göre.

I kollonne B har jeg 15 linjer/celler af forskellige data og kollone A er tom. Kan man lave et makro som så skriver ud en text/tal i kolonne A (15 stk) beregnet på antal linjer/celler i kolonne B.
Den skal starte på feks kolonne A celle 3 men dette vil jeg gerne kunne ändre manuellt.

Taknemlig for hjälp :-)
Avatar billede Slettet bruger
08. maj 2003 - 23:47 #1
I A3 kan du bruge formlen
=COUNTIF(B1:B15;"<>")
Avatar billede Slettet bruger
08. maj 2003 - 23:47 #2
Den tæller antallet af ikke-tomme celler i området B1:B15
Avatar billede rickie Juniormester
09. maj 2003 - 08:14 #3
Det skulle helst være et makro.
Og den skal ikke kun beregne (Count) men derimod om Kolonne B celle 3 = värdi så skal den skrive en feks 'Hej' i kollonne A celle 3 og fortsätte nedad.

:-)
Avatar billede keil Nybegynder
09. maj 2003 - 11:39 #4
Lav en formel i A3 (eller den start celle du vælger)

Formel: =Hvis(B3=<>" ";"Hej";" ")

Lav en makro, som finder ud af, hvormange celler der er udfyldt i. Indspil den f.eks. på følgende måde:

Gå til A3
Ctrl+C
pil til højre
Rediger
gå til
speciel
sidste celle
OK
pil til venstre
Shift+end pilop
Ctrl+V
Avatar billede rickie Juniormester
09. maj 2003 - 12:51 #5
Er der ikke en bedre måde at gøre det på fordi det er ikka sikkert att det alltid er samme antal celler.
Forøvrigt gik den et helt andet sted når jeg valgte sidste celle????:-)
Avatar billede bak Forsker
09. maj 2003 - 13:16 #6
Sub test()
Dim Rng As Range
Dim start As Range
Dim slut As Range
Dim c As Range
Dim x As Long, i As Long
Dim Streng As String
Streng = "Hej"
Set start = Range("B3")
Set slut = Application.InputBox("Hvor vil du have dine data ? " & vbCrLf & "Angiv 1. celle", Type:=8)
Set Rng = Range(start.Address, Cells(65536, start.Column).End(xlUp).Address)

For Each c In Rng
x = x + 1
    If Len(c.Value) > 0 Then slut(x, 1) = Streng
 
Next
End Sub
Avatar billede rickie Juniormester
09. maj 2003 - 13:56 #7
Hej igen Bak :-)

Dejligt at få hjälp af dig igen.
Det virker men hvad nu hvis det skal sættes ind i Blad2 (Sheet2) og spørgsmålet som kommer op (Hvor vil du have dine data?) istedet spørger om hvad jeg vil ha i feltet?

Kan du også ordne det?
Avatar billede bak Forsker
09. maj 2003 - 14:27 #8
Sub test()
Dim Rng As Range
Dim start As Range
Dim slut As Range
Dim c As Range
Dim x As Long, i As Long
Dim Streng As String

Set start = Worksheets("Sheet1").Range("B3")
Set slut = Worksheets("Sheet2").Range("A5")
Streng = InputBox("Hvad skal der stå i cellerne")
Set Rng = Worksheets("Sheet1").Range(start.Address, Worksheets("Sheet1").Cells(65536, start.Column).End(xlUp).Address)

For Each c In Rng
x = x + 1
    If Len(c.Value) > 0 Then slut(x, 1) = Streng
Next
End Sub
Avatar billede rickie Juniormester
09. maj 2003 - 14:34 #9
Igen igen er du bare go´ :-)

Mange tak for hjälpen og fortsat god dag til jer alle.
Avatar billede rickie Juniormester
09. maj 2003 - 14:35 #10
Som tak for hjælpen får:
Blackadder 15 p
Keil 15 p

Bak! Du havde jo ikke svaret men om du vil have dine points så send lige en reminder :-)
Avatar billede bak Forsker
09. maj 2003 - 14:54 #11
Nej, det er ok, det er jo stort set den samme makro, der er brugt i alle dine spørgsmål :-)
Avatar billede rickie Juniormester
09. maj 2003 - 15:14 #12
Bak!

Hvordan får jeg den til, at IKKE skrive over eventuelle data som allerede findes i destinationsfeltet?
Den skal kun skrive i feltet såfremt det er tomt?

På forhånd tak :-)
Avatar billede bak Forsker
09. maj 2003 - 16:18 #13
Sub test()
Dim Rng As Range
Dim start As Range
Dim slut As Range
Dim c As Range
Dim x As Long, i As Long
Dim Streng As String

Set start = Worksheets("Sheet1").Range("B3")
Set slut = Worksheets("Sheet2").Range("A5")
Streng = InputBox("Hvad skal der stå i cellerne")
Set Rng = Worksheets("Sheet1").Range(start.Address, Worksheets("Sheet1").Cells(65536, start.Column).End(xlUp).Address)

For Each c In Rng
x = x + 1
    If Len(c.Value) > 0 And Len(slut(x, 1)) > 0 Then slut(x, 1) = Streng
Next
End Sub
Avatar billede rickie Juniormester
09. maj 2003 - 16:57 #14
Hej igen igen :-)

Nu overskriver den netop de felter som der allerede er tekst i men ikke i dem som er tomme som den skulle?

Sub Produkt()
Dim Rng As Range
Dim start As Range
Dim slut As Range
Dim c As Range
Dim x As Long, i As Long
Dim Streng As String

Set start = Worksheets("Blad1").Range("O3")
Set slut = Worksheets("Blad2").Range("M3")
Streng = InputBox("Hvad skal der stå i cellerne")
Set Rng = Worksheets("Blad1").Range(start.Address, Worksheets("Blad1").Cells(65536, start.Column).End(xlUp).Address)

For Each c In Rng
x = x + 1
    If Len(c.Value) > 0 And Len(slut(x, 1)) > 0 Then slut(x, 1) = Streng
Next
End Sub
Avatar billede bak Forsker
12. maj 2003 - 10:39 #15
ændre denne linie
If Len(c.Value) > 0 And Len(slut(x, 1)) > 0 Then slut(x, 1) = Streng

til
If Len(c.Value) > 0 And Len(slut(x, 1)) = 0 Then slut(x, 1) = Streng
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