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

Combox naam selecteren -> bepaalde kolom selecteren

Status
Niet open voor verdere reacties.

nrgblux

Nieuwe gebruiker
Lid geworden
12 jan 2011
Berichten
4
Beste,

Ik wil een document opstellen, dat als een bepaalde gebruiker zijn naam uit de lijst selecteert, hij automatich naar zijn kolom gestuurd wordt.

Bvb :

Naam 1 --> Kolom1.Select
Naam 2 --> Kolom2.Select
Naam 3 --> Kolom3.Select


Ik geraak er niet uit hoe het moet. Ik heb een voorbeelddocument, kan iemand me helpen?

Download bestand hier!


Mvg,
blux
 
Maak een combobox aan van de activex-besturingselementen, en zet onderstaande codes in moduleblad 'Lijst'.

Code:
Private Sub Worksheet_Activate()
  With Sheets("operatoren")
   ComboBox1.List = .Range("A1:A" & .UsedRange.Rows.Count).Value
  End With
End Sub

Code:
Private Sub ComboBox1_Change()
 Application.Goto Cells(7, ComboBox1.ListIndex + 2)
End Sub
 
Laatst bewerkt:
Hallo,

Ik heb het anders gedaan. Bij aanpassing moest er ook gemaild worden. Wanneer er een aanpassing werd gedaan omdat je iets anders selecteerde, schoot Outlook ook iedere keer in gang, daarom werd het selecteren van die bepaalde cel verstoort.

Code van oplossing:

Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)


'========================================================
' GEBRUIKER SELECTEREN - CEL SELECTEERT AUTOMATISCH
'========================================================



    ' als cel B30 erbij betrokken is mag er niets gebeuren (Outlook mag niet openen)
     If Target.Address = "$B$30" Then
     
     
     If Not Intersect(Target, Range("B30")) Is Nothing Then
    
        ' Keuze 1 selecteren => naar cel B2 gaan
        If Target.Text = "Keuze 1" Then
                Blad1.Select
                Blad1.Range("B2").Select
            End If
        
        ' Keuze 2 selecteren => naar cel C2 gaan
        If Target.Text = "Keuze 2" Then
                Blad1.Select
                Blad1.Range("C2").Select
            End If
    
      End If
     Exit Sub
     
 
'========================================================
' ALS EEN AANPASSING GEBEURT IN EEN ANDERE CEL DAN B30
'========================================================
     
     Else
     
     
'========================================================
' INDIEN AANPASSING : MAILEN VIA OUTLOOK
'========================================================

            
   'declareren variabelen
       Dim objOL As Object
       Dim objMail As Object
       Dim OldValue As String
       Dim oOutlook As Variant
       Dim ol As Outlook.Application
       Dim olNameSpace As Outlook.Namespace
       Dim olInbox As Outlook.MAPIFolder

       Set ol = New Outlook.Application
       Set olNameSpace = ol.GetNamespace("MAPI")
       Set olInbox = olNameSpace.GetDefaultFolder(olFolderInbox)
               
        
       'Outlook zichtbaar maken
       olInbox.Display

       On Error Resume Next
        Set objOL = GetObject(, "Outlook.Application")
            If Err.Number <> 0 Then
                Err.Clear
                Set objOL = CreateObject("Outlook.Application")
        End If
      
      
    
        End If
      
      
       'Indien geen foutmelding - maak mail
       On Error GoTo 0
       Set objMail = ol.CreateItem(0)
       With objMail
       .To = "mail@mail.be"
       .Subject = ThisWorkbook.Name & ": Status " & Range(Target.Address).End(xlToLeft).Text & " gewijzigd door " & Range(Target.Address).End(xlUp).Text & " " & Range(Target.Address).End(xlUp).Offset(1, 0).Text
       .Body = "In het bestand " & ThisWorkbook.Name & " is de status van '" & Range(Target.Address).End(xlToLeft).Text & "' door " & Range(Target.Address).End(xlUp).Text & " " & Range(Target.Address).End(xlUp).Offset(1, 0).Text & " gewijzigd naar '" & Range(Target.Address) & "' op " & Format(Now, "dd/mm/yyyy") & " om " & Format(Now, "hh:mm:ss") & vbCrLf & "Inhoud cel: " & ActiveCell.Value & " en: " & Target.Cells(1).Value & OldValue & vbCrLf
       .Send
        End With
        Set objOL = Nothing
        Set objMail = Nothing
        
           
                    
        
End Sub
 
Je schreef over namen dus cel C30.

1e voordeel:
Met mijn code schiet Outlook niet steeds in gang, opdat er niets veranderd in de cellen, maar in de Combobox.

2e voordeel:
Als de namenlijst langer wordt, hoeft de code niet steeds aangepast worden.

3e voordeel:
Kortere code.

Maar als het is opgelost, wil je de vraag dan als opgelost zetten.
Bvd.
 

Bijlagen

  • Voorbeeld_Document.xlsm
    31,1 KB · Weergaven: 38
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan