Wel nieuwe regel, geen text?

Status
Niet open voor verdere reacties.

sarges

Gebruiker
Lid geworden
11 okt 2008
Berichten
57
Beste kenners,

Kunnen jullie mij verder helpen met het volgende.
Als ik meerdere regels selecteer (zie onderstaande code) die geplaatst moeten worden in een tabel dan wordt alleen de laatst gekozen (cbo4) neergezet.
Wel worden de regels gemaakt, maar niet de text?

Groet

Serge

Code:
Private Sub cmdOK_click()
Dim rownum As Integer
rownum = ActiveDocument.Tables(1).Rows.Count

  If Trim(cbo1.Value) = "1" Or Trim(cbo1.Value) = "12" Or Trim(cbo1.Value) = "52" Then
  ActiveDocument.Tables(1).Cell(rownum, 2).Range = "Afsluiters, stopkranen, (af)tapkranen en Mengkranen: goede werking"
  ActiveDocument.Tables(1).Cell(rownum, 3).Range = "3.1"
  ActiveDocument.Tables(1).Cell(rownum, 4).Range = "Ja"
  ActiveDocument.Tables(1).Cell(rownum, 5).Range = Me("cbo1").Value
ActiveDocument.Tables(1).Rows.Add
End If

  If Trim(cbo2.Value) = "1" Or Trim(cbo2.Value) = "12" Or Trim(cbo2.Value) = "52" Then
  ActiveDocument.Tables(1).Cell(rownum, 2).Range = "Spoelkranen, douchekoppen,Schuimstraalmondstukken."
  ActiveDocument.Tables(1).Cell(rownum, 3).Range = "3.2    3.3"
  ActiveDocument.Tables(1).Cell(rownum, 4).Range = "Ja"
  ActiveDocument.Tables(1).Cell(rownum, 5).Range = Me("cbo2").Value
ActiveDocument.Tables(1).Rows.Add
End If

  If Trim(cbo3.Value) = "1" Or Trim(cbo3.Value) = "12" Or Trim(cbo3.Value) = "52" Then
  ActiveDocument.Tables(1).Cell(rownum, 2).Range = "Verspilling van water en energie."
  ActiveDocument.Tables(1).Cell(rownum, 3).Range = "3.4"
  ActiveDocument.Tables(1).Cell(rownum, 4).Range = "Ja"
  ActiveDocument.Tables(1).Cell(rownum, 5).Range = Me("cbo3").Value
ActiveDocument.Tables(1).Rows.Add
End If

  If Trim(cbo4.Value) = "1" Or Trim(cbo4.Value) = "12" Or Trim(cbo4.Value) = "52" Then
  ActiveDocument.Tables(1).Cell(rownum, 2).Range = "Terugstroombeveiliging: goede werking."
  ActiveDocument.Tables(1).Cell(rownum, 3).Range = "4"
  ActiveDocument.Tables(1).Cell(rownum, 4).Range = "Ja"
  ActiveDocument.Tables(1).Cell(rownum, 5).Range = Me("cbo4").Value
ActiveDocument.Tables(1).Rows.Add
End If

End Sub
 
Code:
Private Sub cmdOK_click()
  With ActiveDocument.Tables(1).Rows.Count
    sn=split("|Afsluiters, stopkranen, (af)tapkranen en Mengkranen: goede werking|Spoelkranen, douchekoppen,Schuimstraalmondstukken|Verspilling van water en energie|Terugstroombeveiliging: goede werking","|")
    st=split("|3.1|3.2  3.3|3.4|4","|"

    For j=1 to 4
      select case trim(Me("cbo" & j).Value)
      case "1" ,"12", "52"
        for jj= 2 to 5
          .Cell(.rows.count, 2).Range = choose(jj,sn(j) & ".",st(j),"Ja",Me(cbo" & j).value) & chr(7) & chr(13)
        next
        .Rows.Last.Select
        Selection.InsertRowsBelow 1
     end select
    Next
End Sub
 
Laatst bewerkt:
Bedankt voor je reactie,

Helaas kom ik er niet helemaal uit.
Heb het formulier bijgevoegd, als je er aub naar zou willen kijken.

Serge
 

Bijlagen

Als je in de originele code die je hebt gepost in je if statement je rownum ophoogt dan zou het wel moeten werken
Code:
 If Trim(cbo1.Value) = "1" Or Trim(cbo1.Value) = "12" Or Trim(cbo1.Value) = "52" Then
  ActiveDocument.Tables(1).Cell(rownum, 2).Range = "Afsluiters, stopkranen, (af)tapkranen en Mengkranen: goede werking"
  ActiveDocument.Tables(1).Cell(rownum, 3).Range = "3.1"
  ActiveDocument.Tables(1).Cell(rownum, 4).Range = "Ja"
  ActiveDocument.Tables(1).Cell(rownum, 5).Range = Me("cbo1").Value
ActiveDocument.Tables(1).Rows.Add
[b]rownum = rownum +1[/b]
End If

Je schrijft namelijk iedere keer je tekst in rij rownum neer. En aangezien je die niet ophoogt schrijf je er steeds overheen i.p.v. dat je in de volgende rij gaat schrijven.
 
Als je in de originele code die je hebt gepost in je if statement je rownum ophoogt dan zou het wel moeten werken
Code:
 If Trim(cbo1.Value) = "1" Or Trim(cbo1.Value) = "12" Or Trim(cbo1.Value) = "52" Then
  ActiveDocument.Tables(1).Cell(rownum, 2).Range = "Afsluiters, stopkranen, (af)tapkranen en Mengkranen: goede werking"
  ActiveDocument.Tables(1).Cell(rownum, 3).Range = "3.1"
  ActiveDocument.Tables(1).Cell(rownum, 4).Range = "Ja"
  ActiveDocument.Tables(1).Cell(rownum, 5).Range = Me("cbo1").Value
ActiveDocument.Tables(1).Rows.Add
[b]rownum = rownum +1[/b]
End If

Je schrijft namelijk iedere keer je tekst in rij rownum neer. En aangezien je die niet ophoogt schrijf je er steeds overheen i.p.v. dat je in de volgende rij gaat schrijven.

Bedankt voor je uitleg, zo komt het er te staan zoals ik bedoel.
Zal proberen de code netter te maken (sneller).
Hulde aan jullie die elke keer weer iedereen helpen met problemen cq vragen.

Serge
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan