• 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.

Te lange velden

Status
Niet open voor verdere reacties.

torenflat

Gebruiker
Lid geworden
17 jun 2004
Berichten
14
Ik heb een adressen bestand maar er staan meer tekens in een cel dan de 50 tekens die maximaal toegestaan zijn.
Is er dan een mogelijkheid, indien er meer dan 50 tekens staan in die cel, een formule te maken die gaat naar positie 50 en als er dan nog tekst doorloopt teruggaat naar de eerste logische spatie en dan dat gedeelte wat te lang is overhevelt naar een volgende cel?
 
Er mogen (bij mijn weten) maximaal 64000 tekens in een cel staan. Kan je je vraag anders formuleren?
 
Hoi Torenflat,

Kijk eens via Data - Valideren of er daar bepaald wordt dat er maximaal 50 karakters in één cel mogen?
Als dat zo is, dan kun je die misschien uitzetten, of de maker van het adressenbestand vragen waarom die beperking er op zit.

Richard
 
Te lange velden 2

De kolommen bestaan uit adresgegevens zoals kolom 1 ( bedrijf ) kolom 2 ( Afdeling ) kolom 3 ( T.a.v. ) kolom 4 ( Straat ) Kolom 5 ( Postcode Plaats ) Uiteindelijk wordt het Excel bestand omgezet naar een andere directory waar ik gebonden ben aan maximaal 50 posities! Waardoor ik genoodzaakt ben om cel voor cel te herstellen, dus een cel boven de 50 tekens intekorten en knippen en plakken naar andere cel! Hierin gaat erg veel werk zitten dus lijkt het me handig om dit eventueel met een formule te kunnen uitvoeren!
 
Ik heb je probleem bekeken. Ik heb een oplossing gemaakt voor je met een macro. Deze macro moet je als volgt in je excel zetten:

Druk op Alt F11. Ga naar je projetverkenner en maak daar niet zoals in mijn handtekening staat een nieuwe module aan, maar kies voor het werkblad waarop de adresgegevens staan. (De naam van dat werkblad staat in de lijst van de projectverkenner. Open dit bestand)

In dit bestand moet je de volgende code plaatsen, ik had geen zin meer om overal uitleg te plaatsen dus veel plezier er mee:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  'Selecteer de cel die was veranderd
  Range(Target.Address).Select
  Dim inhoud As String
  Dim lengte As Integer
  Dim blabla As Variant
  'de inhoud van de huidige cel
  inhoud = ActiveCell.Value
  'de lengte daarvan
  lengte = Len(inhoud)
  'wanneer die lengte langer is dan 50 dan inkorten en de rest er onder
  'is de rest ook langer dan 50 maakt dat niet uit, want omdat je het weer
  'wegschrijft wordt de macro vanzelf nog een keer aangeroepen
  If lengte > 50 Then
    Dim nieuweWaarde As String
    Dim test As String
    Dim rest As String
    Dim i As Integer
    i = 0
    blabla = Split(inhoud, " ")
    nieuweWaarde = blabla(i)
    lengte = Len(nieuweWaarde)
    If lengte > 50 Then
      MsgBox ("De invoer van uw huidige cel is langer dan 50 tekens en bevat geen spatie")
      Exit Sub
    End If
    i = 1
    On Error GoTo einde
    While True
      test = nieuweWaarde + " " + blabla(i)
      If Len(test) > 50 Then
        GoTo rest
      End If
      nieuweWaarde = nieuweWaarde + " " + blabla(i)
      lengte = lengte + Len(blabla(i))
      i = i + 1
    Wend
rest:
    rest = blabla(i)
    i = i + 1
    While True
      rest = rest + " " + blabla(i)
      i = i + 1
    Wend
einde:
    ActiveCell.Value = nieuweWaarde
    ActiveCell.Offset(1, 0).Value = rest
  End If
End Sub

-edit-
Ohja om nog even extra er bij te vermelden wat het precies doet. Wanneer de lengte van de tekst langer is dan 50 tekens dan zal alles wat langer is dan die 50 tekens in de cel er onder komen. Als er al waarden in die cellen er onder staan raak je deze dus kwijt!

Wanneer je iets anders zoekt moet je het maar zeggen.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan