Automatisch volgende regel

Status
Niet open voor verdere reacties.

sarges

Gebruiker
Lid geworden
11 okt 2008
Berichten
57
Beste Kenners,

Begin bij het begin.
Schaf een boek aan over VBA en lees dat systematisch door.
Kijk ook eens hier
:thumb:

Heb ik gedaan en ik ben al zo ver en blij. (zie bijlage)
Mijn vraag waar ik niet achter kom is hoe na de selectie automatisch naar de volgende regel springt. Om daar weer de benodigde informatie in te zetten.

Serge
 

Bijlagen

  • regels.JPG
    regels.JPG
    35,8 KB · Weergaven: 67
In excel: sheets(1).cells(rows.count,1).end(xlup).offset(1)

Die offset doet het 'm.

In word:

Activedocument.tables(1).cell(2,1).range="tekst in tweede rij van de tabel"
 
Ik heb zover dit, werk goed. Maar zal zeker beter kunnen.
PHP:
Sub cmdNieuw_Click()

    Selection.MoveRight Unit:=wdCell
    With ActiveDocument.Bookmarks
        .Add Range:=Selection.Range, Name:="Nummer"
        .DefaultSorting = wdSortByName
        .ShowHidden = False
    End With
    Selection.MoveRight Unit:=wdCell
    With ActiveDocument.Bookmarks
        .Add Range:=Selection.Range, Name:="Toestel"
        .DefaultSorting = wdSortByName
        .ShowHidden = False
    End With
    Selection.MoveRight Unit:=wdCell
    With ActiveDocument.Bookmarks
        .Add Range:=Selection.Range, Name:="Vereiste"
        .DefaultSorting = wdSortByName
        .ShowHidden = False
    End With
    Selection.MoveRight Unit:=wdCell
    With ActiveDocument.Bookmarks
        .Add Range:=Selection.Range, Name:="Aanwezige"
        .DefaultSorting = wdSortByName
        .ShowHidden = False
    End With
    Selection.MoveRight Unit:=wdCell
    With ActiveDocument.Bookmarks
        .Add Range:=Selection.Range, Name:="Koud"
        .DefaultSorting = wdSortByName
        .ShowHidden = False
    End With
    Selection.MoveRight Unit:=wdCell
    With ActiveDocument.Bookmarks
        .Add Range:=Selection.Range, Name:="Warm"
        .DefaultSorting = wdSortByName
        .ShowHidden = False
    End With

End Sub
 
Dat kan inderdaad beter (zonder bookmarks, zonder select en zonder move), zoals in mijn vorige bericht, bijv.

Code:
for j=1 to 4
  Activedocument.tables(1).cell(1,j).range=Me("Textbox" & j).Text
next
 
De kennis hiervoor is nog niet aanwezig.
Dit is wat ik heb gedaan. Maar de foutmelding zegt genoeg.

Compileerfout:
Het argument is niet optioneel

PHP:
Private Sub cmdOK_Click()
ActiveDocument.Bookmarks("Nummer").Range.Text = cboNummer.Value
ActiveDocument.Bookmarks("Toestel").Range.Text = cboToestel.Value
ActiveDocument.Bookmarks("Vereiste").Range.Text = cboVereiste.Value
ActiveDocument.Bookmarks("Aanwezige").Range.Text = cboAanwezige.Value
ActiveDocument.Bookmarks("Koud").Range.Text = cboKoud.Value
ActiveDocument.Bookmarks("Warm").Range.Text = cboWarm.Value
Unload Me
for j=1 to 6
  Activedocument.tables(1).cell(1,j).range=Me("Textbox" & j).Text
next
frmBrief.Show
End Sub
 
Dit is het laatste wat ik nodig heb om mijn project helemaal goed te laten werken.
Mijn database werk prima, kan alles oproepen. Maar zonder dit laatste stukje is het van geen waarde.
Hoop dat iemand mij kan uitleggen hoe ik de regels moet laten werken.

Sub cmdNieuweregel_Click()
for j=1 to 6
Activedocument.tables(1).cell(1,j).range=Me("Textbox" & j).Text
next
End Sub
 
Door de objecten cboNummer, cboToestel, cboVereiste, cboAanwezige, cboKoud en cboWarm andere namen te geven: bijv. tekst1, tekst2, tekst3, tekst 4, etc.
Me("tekst" & j).value verwijst dan naar tekst1.value als de variabele j de waarde 1 heeft.
 
Ik heb het geprobeerd maar het lukt niet.
Via de (opnieuw gemaakt macro met Alt+End) lukt het wel om een nieuwe regel met de Bookmarks op zijn plaats te krijgen.
Maar wil de code netjes zetten zoals je al hier voor zei.
Ook heb ik geprobeerd om de cboNummer, enz te veranderen in cbo1, enz Me("cbo" & j).Value (of Text)

PHP:
Private Sub cmdOK_Click()

    ActiveDocument.Bookmarks("cm1").Range.Text = cboNummer.Value
    ActiveDocument.Bookmarks("cm2").Range.Text = cboToestel.Value
    ActiveDocument.Bookmarks("cm3").Range.Text = cboVereiste.Value
    ActiveDocument.Bookmarks("cm4").Range.Text = cboAanwezige.Value
    ActiveDocument.Bookmarks("cm5").Range.Text = cboKoud.Value
    ActiveDocument.Bookmarks("cm6").Range.Text = cboWarm.Value
    
    Dim aandacht As String

If OptNee = True Then
aandacht = "Nee"
Else: aandacht = "Ja"
End If

ActiveDocument.Bookmarks("cm7").Range.Text = aandacht
    
Unload Me
For j = 1 To 7
  ActiveDocument.Tables(1).Cell(1, j).Range = Me("cm" & j).Text
Next
frmBrief.Show
End Sub

of

PHP:
Sub cmdNieuweregel_Click()
For j = 1 To 7
  ActiveDocument.Tables(1).Cell(1, j).Range = Me("cm" & j).Text
Next
End Sub
 
Bladwijzers zijn overbodig.
Gebruik svp de goede code-markering (geen PHP, zoals jij doet), die aangeduid wordt met #

Code:
Sub cmdNieuweregel_Click()
  For j = 1 To 7
    ActiveDocument.Tables(1).Cell(1, j).Range = Me("cbo" & j).Text
  Next
End Sub
 
Deze 2 acties heb ik geprobeerd, in de eerste heb ik ook
Me("cbo" & j).Text
of
Me("cm" & j).Text
Krijg de foutmelding:
Fout -2147024809 (80070057) tijdens uitvoering:
Kan het gegeven object niet vinden
=> is deze regel: ActiveDocument.Tables(1).Cell(1, j).Range = Me("cm & j").Value

Comboboxen zijn genoemd cbo1, enzz
Bladwijzers in het tabel van 6 kolommen zijn genoemd cm1, enz

PHP:
Private Sub cmdOK_Click()

    ActiveDocument.Bookmarks("cm1").Range.Text = cbo1.Value
    ActiveDocument.Bookmarks("cm2").Range.Text = cbo2.Value
    ActiveDocument.Bookmarks("cm3").Range.Text = cbo3.Value
    ActiveDocument.Bookmarks("cm4").Range.Text = cbo4.Value
    ActiveDocument.Bookmarks("cm5").Range.Text = cbo5.Value
    ActiveDocument.Bookmarks("cm6").Range.Text = cbo6.Value
    
   For j = 1 To 6
    ActiveDocument.Tables(1).Cell(1, j).Range = Me("cbo" & j).Text
  Next
  
Unload Me

frmBrief.Show
End Sub


PHP:
Sub cmdNieuweregel_Click()
/////////////////////////////////////////////////
  (Deze geeft de nieuwe regel, ik heb het met en zonder geprobeerd. 
Maar de bladwijzers gaan niet mee) 
Selection.EndKey Unit:=wdRow
 Selection.MoveRight Unit:=wdCell
//////////////////////////////////////////////////////

  For j = 1 To 6
    ActiveDocument.Tables(1).Cell(1, j).Range = Me("cm" & j).Text
  Next
End Sub

Dit werkt prima.

PHP:
Sub cmdNieuweregel_Click()
    
    Selection.EndKey Unit:=wdRow
    Selection.MoveRight Unit:=wdCell
    With ActiveDocument.Bookmarks
        .Add Range:=Selection.Range, Name:="cm1"
        .DefaultSorting = wdSortByLocation
        .ShowHidden = False
    End With
    For r = 2 To 6
    Selection.MoveRight Unit:=wdCell
    With ActiveDocument.Bookmarks
        .Add Range:=Selection.Range, Name:=("cm" & r)
        .DefaultSorting = wdSortByLocation
        .ShowHidden = False
    End With
Next
End Sub
 
Laatst bewerkt:
Bladwijzers zijn overbodig.
Gebruik svp de goede code-markering (geen PHP, zoals jij doet), die aangeduid wordt met #

Code:
Sub cmdNieuweregel_Click()
  For j = 1 To 7
    ActiveDocument.Tables(1).Cell(1, j).Range = Me("cbo" & j).Text
  Next
End Sub

Begrijp ondertussen hoe het werkt.
Maar als ik de laatste regel in een tabel deze gegevens wil invullen, hoe kan ik dan die laatste regel kiezen?
Het is nooit een vast tabel waar ik in werk, kan bestaan uit 5 regels of 20.
Code:
Private Sub CommandButton2_Click()
Dim rownum As Integer, i As Integer
rownum = ActiveDocument.Tables(1).Rows.Count
For i = 1 To ActiveDocument.Tables(1).Columns.Count
ActiveDocument.Tables(1).Cell(rownum, i).Range.InsertAfter "text"
Next
ActiveDocument.Tables(1).Rows.Add
End Sub
Serge
 
Laatst bewerkt:
Code:
 ActiveDocument.Tables(1).Cell(rownum, j).Range = Me("cbo" & j).Text

Lag voor me, gelukkig toch nog gezien
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan