• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Deel van tekst automatisch vervangen

  • Onderwerp starter Onderwerp starter R4D4
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

R4D4

Gebruiker
Lid geworden
5 dec 2011
Berichten
61
Vanuit een tekenprogramma exporteer ik diverse gegeven naar een Excelsheet.
1 kolom word gevuld met gewichten.

De waarde in deze kolom is altijd met kg achter het getal.
24 kg
1 kg
6,7 kg
enzz...

Na de export selecteer ik die cellen en met CTRL-F ga ik naar vervangen en zoek naar kg, dit vervang ik door een spatie.
Vervolgens staan er dus enkel getallen in die kolommen. Wat ik ook graag zo wil hebben.

Is er een manier om dit automatisch te doen??
 
Vervang niet door een spatie maar door niks.
Met een functie in een andere kolom:
PHP:
=--SUBSTITUEREN(A1;"kg";"")
Anders met een stukje VBA.
 
Vervang niet door een spatie maar door niks.
Met een functie in een andere kolom:
PHP:
=--SUBSTITUEREN(A1;"kg";"")
Anders met een stukje VBA.
Bedankt voor je snelle reactie.

Waar/hoe voeg ik die code toe aan de desbetreffende cel(len)?
 
een voorbeeldbestandje plaatsen kan veel duidelijk maken.
 
Op welke manier gebeurt de export ?
Als het knippen en plakken is kan je deze code in de Bladmodule zetten v/h werkblad waarin je de gegevens plakt. Er wordt nu gekeken naar Kolom1. Als het een andere kolom betreft wijzig je in de code de '1' 2x naar het juiste kolomnummer.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Columns(1)) Is Nothing Then
        For Each cl In Intersect(Columns(1), Target)
            cl.Value = CDbl(Replace(cl.Value, "kg", ""))
        Next
    End If
End Sub
 
Bedankt voor je snelle reactie.
Waar/hoe voeg ik die code toe aan de desbetreffende cel(len)?
Zie dit document, maar beter plaats je zelf een voorbeeld document:
 

Bijlagen

Tekst naar kolommen gaat ook,
Splitsen op spatie en kolom met 'kg' niet importeren.
 
Vervang niet door een spatie maar door niks.
TS heeft nu dus 2 spaties en jij houd er nog steeds 1 over. Zoek en vervang (CTRL + H) op " kg" (let op de spatie voor kg) en vervangen door "".

Deze of met een formule zijn eigenlijk de snelste methodes. TS kan nog een hoofd sheet maken met de formule van @edmoor erin. Koppeling leggen met de CSV. Dan zou het allemaal redelijk automatisch moeten werken.

Tenzij ik dit heel vaak zou moeten doen is het de moeite niet echt om dit verder te automatiseren
 
Die -- zorgt ervoor dat het een getal is en geen tekst.
De spaties zijn dus weg.
 
Sorry @edmoor . Ik las jouw bericht als 2 losstaande zinnen (met dus 2 oplossingen). Jij doelde dus op het gebruik van de formule. In dat geval is mijn opmerking inderdaad niet van toepassing.
 
Geen probleem :)
 
Excuses mensen, ik had vanaf mijn eerste bericht al meteen de bestanden mee moeten sturen. Dat maakt het hopelijk wat duidelijker.

Vanuit het tekenprogramma (Eplan) word er een export gemaakt naar een excelsheet.
Om de juiste waarden in de sheet te krijgen heb ik in Eplan een sjabloon aangemaakt (Tanis_BOM.xlsm).
In kolom K komt het gewicht te staan van het artikel.

Als ik dan een export maak (1568_BOM-MCP01.xlsm) komen de gewichten er netjes in te staan. Echter moet ik hier handmatig de kg eruit halen. Dit doe ik om in cel J7 het totale gewicht inzichtelijk te maken.
En net die laatste stap wil ik graag automatiseren...
 

Bijlagen

Ik heb het draadje niet helemaal gevolgd maar komt dit misschien een beetje in de richting?
 

Bijlagen

Of deze. Kolommen K en J worden omgezet naar getallen zodat de optelling klopt.

Code:
Sub Calculate()
    q1 = [J10:k183]
    For i = LBound(q1) To UBound(q1)
        q1(i, 1) = q1(i, 1) * 1
        q1(i, 2) = Trim(Replace(q1(i, 2), "kg", "")) * 1
    Next i
    Range("J10").Resize(UBound(q1), 2) = q1
End Sub
 

Bijlagen

Of deze. Kolommen K en J worden omgezet naar getallen zodat de optelling klopt.

Code:
Sub Calculate()
    q1 = [J10:k183]
    For i = LBound(q1) To UBound(q1)
        q1(i, 1) = q1(i, 1) * 1
        q1(i, 2) = Trim(Replace(q1(i, 2), "kg", "")) * 1
    Next i
    Range("J10").Resize(UBound(q1), 2) = q1
End Sub

Is het ook mogelijk om dit in het andere bestand (Tanis_BOM) te doen?

Ik had je code geïmporteerd, maar krijg dan een foutmelding. Nu ben ik geen expert, dus weet niet wat ik moet aanpassen hierin...
 
Code:
Sub Calculate()
    q1 = [Tanis_Bom!J10:k183]
    For i = LBound(q1) To UBound(q1)
        If q1(i, 1) <> vbNullString Then
            q1(i, 1) = q1(i, 1) * 1
            q1(i, 2) = Trim(Replace(q1(i, 2), "kg", "")) * 1
        End If
    Next i
    Sheets("Tanis_Bom").Range("J10").Resize(UBound(q1), 2) = q1
End Sub
 
Dit is de foutmelding die ik krijg
 

Bijlagen

  • Foutmelding.png
    Foutmelding.png
    52,8 KB · Weergaven: 8
Plaats dan eens een bestand met data waar deze fout voorkomt want met de data uit 1568_Bom bestand krijg ik deze foutmelding niet.
 
Ik heb wel een bestand MET data nodig, geen leeg bestand.
In het bestand dat je post staan enkel '#'. Als je daarop de code test krijg je uiteraard een foutmelding.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan