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

Automatisch getal in tekst veranderen

Status
Niet open voor verdere reacties.

railwezel

Gebruiker
Lid geworden
6 dec 2019
Berichten
7
Als roostercommissie krijgen wij een database aangeleverd in een Exel-bestand.Hierin vind ik het aantal diensten voor personeelsleden, hoe laat ze beginnen enz.
Ook de bestemmingen waar de machinist naartoe gaat tijdens zijn dienst.

In het bijgeleverde voorbeeld bestand: Dienst 1 gaat 2 x naar Amf-Ut (traject Amersfoort-Utrecht). Ik wil graag bij het kopiëren van dit bestand naar ons eigen Exel programma dat de 2 veranderd in de koptekst, dus Amf-Ut.

Vervolgens wil van iedere dienst in een apart tekstvak, of cel, alle trajecten hebben geplaatst, zodat ik in 1 oogopslag zie waar ik tijdens mijn dienst heen ga.

Ik ben geen Exel expert en krijg dit dus niet voor elkaar, wie wil en kan mij helpen?
 

Bijlagen

  • voorbeeld.xlsx
    11,1 KB · Weergaven: 38
Laatst bewerkt:
Bestand

Hoi JeanPaul 28,

Hetzelfde als het voorbeeldbestand, waarbij de getallen >0 in de trajectkolommen zijn veranderd in tekst en een extra kolom waar de trajecten per dienst in een eigen cel/tekstvak verzameld zijn.
Dit is wel zo makkelijk voor het Exelprogramma waar wij naartoe kopiëren.

Vriendelijke groeten,

railwezel
 
bedoel je zoiets?
 

Bijlagen

  • voorbeeld trein.xlsm
    19,7 KB · Weergaven: 33
Als je het cel formaat op 0;-0;; zet dan zijn (lijken) de cellen met een 0 leeg en zie je ook in een oogopslag waar je tijdens je dienst heen gaat
 
railwezel,

zie bijlage kolom N nadat je op de knop geklikt hebt
 

Bijlagen

  • voorbeeld trein emields en hs.xlsm
    19 KB · Weergaven: 34
De verwachte uitkomst laten zien zou wel handig zijn.

Obv van het het bestand in #6 gaat het zo wat sneller.
Code:
Sub Knop1_Klikken()
  ar = Cells(1).CurrentRegion
  c00 = "Dienstregeling|"
  For j = 2 To UBound(ar)
  c01 = ""
    For jj = 14 To UBound(ar, 2)
      If ar(j, jj) <> 0 Then
        c01 = c01 & ar(1, jj) & " _ "
        ar(j, jj) = ar(1, jj)
       Else
        ar(j, jj) = ""
      End If
    Next jj
    c00 = c00 & "(" & ar(j, 1) & ")" & Left(c01, Len(c01) - 3) & "|"
  Next j
  Cells(1).CurrentRegion = ar
  Columns(14).Insert
  With Columns(14)
    .Cells(1).Resize(UBound(ar)) = Application.Transpose(Split(c00, "|"))
    .AutoFit
    .HorizontalAlignment = xlLeft
  End With
End Sub
 
Hoe kan ik?

Dit is toch een geweldig forum, iedereen bedankt die belangeloos een ander wil helpen met een materie die voor mij abrcadabra is.

Vraag 1- De macro werkt perfect maar, ik wil graag kolom N, met de dienstinhoud, verplaatsen naar kolom A. Dit i.v.m. wijzigingsbladen op de diensten die ik dan in
1 keer weer kan plakken in mijn bestand.

Vraag 2- In de wijzigingsbladen zijn natuurlijk wijzigingen t.o.v het vorige blad, is het mogelijk dat de wijzigingen worden geaccentueerd? Wijzigingen zijn over het
algemeen tijdswijzigingen of andere dienstinhoud m.b.t. trajecten.
 
sorry

Hallo Vena,

Sorry, ik probeer het wel maar het lukt niet. Hoe vul ik dit in in de macro?:eek:
 
PowerQuery kan ook....
 

Bijlagen

  • voorbeeld (1).xlsx
    29,9 KB · Weergaven: 20
nog 1 keer

Vena (of wie dan ook) zou je mij nog 1 keer willen helpen?

Ik heb alles gedaan zoals jullie aangaven. Het werkt op het exel blad dat jullie posten, maar als ik het hele bestand invoer dan krijg ik een foutcode die ik niet begrijp, c00 = c00 & "(" & ar(j, 1) & ")" & Left(c01, Len(c01) - 3) & "|"

Ik heb het bestand bijgevoegd.

Vriendelijke groeten,

Railwezel
 

Bijlagen

  • voorbeeld trein.xlsm
    99,7 KB · Weergaven: 25
ALs je je data uit dat voorbeeld plakt over de brondata (op Blad1) in mijn voorbeeldbestand en op alles vernieuwen klikt dan werkt dat gewoon.
 
railwezel,

zie de aangepaste bijlage
 

Bijlagen

  • voorbeeld trein emields en hs2.xlsm
    19,8 KB · Weergaven: 25
Code:
Sub Knop1_Klikken()
  ar = Cells(1).CurrentRegion
  c00 = "Dienstregeling|"
  For j = 2 To UBound(ar)
  c01 = ""
    For jj = 14 To UBound(ar, 2)
      If ar(j, jj) <> 0 Then
        c01 = c01 & ar(1, jj) & " _ "
        ar(j, jj) = ar(1, jj)
       Else
        ar(j, jj) = ""
      End If
    Next jj
    If Len(c01) > 0 Then c00 = c00 & "(" & ar(j, 1) & ")" & Left(c01, Len(c01) - 3) & "|" Else c00 = c00 & "|"
  Next j
  Cells(1).CurrentRegion = ar
  Columns(14).Insert
  With Columns(1)
    .Cells(1).Resize(UBound(ar)) = Application.Transpose(Split(c00, "|"))
    .AutoFit
    .HorizontalAlignment = xlLeft
  End With
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan