Avatar billede HHA Professor
08. marts 2022 - 13:25 Der er 7 kommentarer og
1 løsning

VBA overføre flere celler til en celle

Jeg er gået i stå med hvordan jeg tager teksten i flere celler i ws1 og sætter dem sammen i en celle på ws2.

Har nedenstående, men den vil selvfølgelig ikke godtage "formlen"
Nogen gode forslag?

For i = 4 To LR1                                                             
                                                                                   
If ws1.Range("A" & i).Value <> "" Then                                     
           
ws2.Cells.NumberFormat = "@"                                       
ws2.Cells(LR2, "A").Value = ws1.Cells(i, "D" + " F," + " B''," + " C").Value
Avatar billede kulawig Professor
08. marts 2022 - 15:44 #1
skal det være VBA ... eller kan "sammenkædning" gøre det ?
Avatar billede kulawig Professor
08. marts 2022 - 15:45 #2
Avatar billede jens48 Ekspert
08. marts 2022 - 16:17 #3
Hvor kommer LR2 fra?
Er det dette du ønsker:

For i = 4 To LR1
                                                                                 
    If WS1.Range("A" & i).Value <> "" Then
         
WS2.Cells.NumberFormat = "@"
WS1.Range("D" & i).Copy Destination:=WS2.Cells(i, "A")
WS1.Range("F" & i).Copy Destination:=WS2.Cells(i, "B")
WS1.Range("B" & i).Copy Destination:=WS2.Cells(i, "C")
WS1.Range("C" & i).Copy Destination:=WS2.Cells(i, "D")
 
    End If
Next
Avatar billede Jan K Ekspert
08. marts 2022 - 16:31 #4
#3  Som jeg læser OP skal det hele ende i samme celle  i ws2. Så deg må være noger med at konkatenere de fire strenge inden de indsættes.

Altså noget stil med

RESULTAT = A & B & C & D

Og så indsætte resultst. Desværre kan jeg ikke bruge VBA i Exvel på min telefon, så jeg kan ikke teste.
Avatar billede HHA Professor
08. marts 2022 - 17:36 #5
#1, ja, det skal være en VBA/Makro, da den skal tage teksten fra flere celler i et ark og samle det på et andet ark i en celle.
Det skal bruges til at "fremstille" prisfiler til upload i Microsoft AX.
Men de forskellige leverandører har hver deres filer de sender ud, så jeg er ved at lave Excel filer der henter deres fil ind i et regneark og konverterer det til den rigtige opsætning og herefter gemmer som CSV fil.

Det link du lagde ind virker måske, men tror ikke jeg har evnerne til at sætte det ind i min kode.

#4 Ja, men hvordan sætter jeg det sammen?
Her er mit "forsøg", et lille udklip af hele koden:

If ws1.Range("A" & i).Value <> "" Then                                   
           
            ws2.Cells.NumberFormat = "@"                                   
           
            Result = ws1.Cells(i, "D" & " F," & " B," & " C").Value   
          ' (HVORDAN SKAL DET VÆRE?)
           
            ws2.Cells(LR2, "A").Value = Result
           
                                                                                 
            ws2.Cells(LR2, "B").Value = ws1.Cells(i, "A").Value                   
            ws2.Cells(LR2, "C").Value = ws1.Cells(i, "").Value   

#
Her er hele min kode:

Sub Opret_Ny_Fil()

Dim ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet
Dim LR1 As Long, LR2 As Long
   
    Set ws1 = Sheets("Ark1")
    Set ws2 = Sheets("Ark2")
    ws2.Cells.ClearContents                                                     
             
    LR1 = ws1.Range("C" & Rows.Count).End(xlUp).Row
       
    Application.ScreenUpdating = False
   
    LR2 = 1
   
    For i = 4 To LR1                                                                                                                                               
        If ws1.Range("A" & i).Value <> "" Then     
            ws2.Cells.NumberFormat = "@"
                                       
            ws2.Cells(LR2, "A").Value = ws1.Cells(i, "D" + " F," + " B''," + " C").Value

            ws2.Cells(LR2, "B").Value = ws1.Cells(i, "A").Value                   
            ws2.Cells(LR2, "C").Value = ws1.Cells(i, "").Value                   
            ws2.Cells(LR2, "D").Value = ("Mtr")                                   
            ws2.Cells(LR2, "E").Value = ws1.Cells(i, "H").Value
            ws2.Cells(LR2, "F").Value = ws1.Cells(i, "G").Value
            ws2.Cells(LR2, "G").Value = ("DKK")                                   
            ws2.Cells(LR2, "H").Value = ws1.Cells(i, "G").Value
            ws2.Cells(LR2, "I").Value = ("DKK")                                   
            ws2.Cells(LR2, "J").Value = ws1.Cells(i, "G").Value
            ws2.Cells(LR2, "K").Value = ("DKK")                                   
            ws2.Cells(LR2, "L").Value = ws1.Cells(i, "G").Value
            ws2.Cells(LR2, "M").Value = ("DKK")                                   
            ws2.Cells(LR2, "N").Value = ws1.Cells(i, "G").Value
            ws2.Cells(LR2, "O").Value = ("DKK")                                    '
           
            Worksheets("Ark2").Columns("A:cc").AutoFit
           
            LR2 = LR2 + 1
         
        End If
        Next i
     
        Worksheets("Ark2").Columns("E").NumberFormat = "0.00"
        Worksheets("Ark2").Columns("F").NumberFormat = "0.00"
        Worksheets("Ark2").Columns("H").NumberFormat = "0.00"
        Worksheets("Ark2").Columns("J").NumberFormat = "0.00"
        Worksheets("Ark2").Columns("L").NumberFormat = "0.00"
        Worksheets("Ark2").Columns("N").NumberFormat = "0.00"
       
       
Application.ScreenUpdating = True

MsgBox "Filen er klar!"

End Sub
Avatar billede Jan K Ekspert
08. marts 2022 - 18:33 #6
Anbring hver af dine fire cellers indhold i hver sin variabel, fx A, B, C og D.

Altså,fx

A = ws1.cells(i, "A") og så videre

Og så,til sidst

RESULT = A & B & C & D
Avatar billede Jan K Ekspert
08. marts 2022 - 18:34 #7
Det er lidt svært at vise uden VBA.
Avatar billede HHA Professor
08. marts 2022 - 21:21 #8
Tusind tak til jer begge.
Det hjalp med et skub i den rigtige retning.
Nu virker det som jeg gerne ville have det til 👍
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

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