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
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
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.
Synes godt om
1 synes godt om dette
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
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
Synes godt om
1 synes godt om dette