Helpmij.nl
Helpmij.nl
Helpmij.nl
Steun Helpmij.nl! Klik hier     Computerprobleem? Klik hier!

Quote

Weergeven resultaten 1 tot 12 van 12

Onderwerp: Kopiëren van formulierbesturingselementen (VBA nodig?)

  1. #1
    Vraag is opgelost

    Kopiëren van formulierbesturingselementen (VBA nodig?)

    Ik wil graag in Excel 2013 een enquete maken.

    Voor vraag 1 lukt dit.

    Als ik nu regel 6 (cellen C6..G6) kopieer naar regel 7 (C7..G7) dan blijven de besturingselementen aan elkaar gekoppeld.

    Op Regel 7 (etc.) moet precies hetzelfde staan als op regel 6, maar dan met output naar CEL I7 etc. etc.


    Weet iemand hoe je dit gerealiseerd krijgt?
    Hoe is dit op een bepaalde manier te kopiëren of misschien wel in VBA op te zetten?

    Pieter

    Voorbeeld:
    Bijgevoegde bestanden Bijgevoegde bestanden

  2. #2
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    8 September 2000
    Locatie
    Zuid-Holland
    Simpel de koppeling aanpassen in de opmaak van het keuzerondje.
    "It's hardware that makes a machine fast. It's software that makes a fast machine slow. "
    Op rechtstreekse vragen via email of privébericht reageer ik niet. Daar is het forum voor.
    Lees ook: http://www.helpmij.nl/forum/announcement.php?f=5

  3. #3
    Senior Member
    Geregistreerd
    27 February 2019
    https://docs.google.com/forms/d/1L79...FBM/edit?hl=nl

    Je kunt op google de enquete gemakkelijk maken. Daarna zijn de uitkomsten in te laden in Excel.

    OF als je t per se in Excel wil is daar vast een oplossing voor.

  4. #4
    @Edmoor,

    Als ik de vijf keuzerondjes kopieer, dan blijven alle 10 de keuzerondjes aan elkaar gekoppeld een verwijzen voor resultaat allemaal naar dezelfde cel.

    Bij aanpassen van de koppeling blijft voorgaande hetzelfde.
    Laatst aangepast door Pieter671 : 26 March 2020 om 13:25

  5. #5
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    8 September 2000
    Locatie
    Zuid-Holland
    Gebruik ActiveX keuzerondjes, dan kan je ze per groep een naam geven en zijn ze onafhankelijk.
    "It's hardware that makes a machine fast. It's software that makes a fast machine slow. "
    Op rechtstreekse vragen via email of privébericht reageer ik niet. Daar is het forum voor.
    Lees ook: http://www.helpmij.nl/forum/announcement.php?f=5

  6. #6
    Giga Honourable Senior Member
    Geregistreerd
    2 March 2013
    Ook met de gebruikte keuzerondjes kan je groepen gebruiken. 1 regel voor de voorwaardelijke opmaak is voldoende. Beter kan je die keuzerondjes helemaal niet gebruiken omdat ze nogal eens rare effecten kunnen geven.
    Bijgevoegde bestanden Bijgevoegde bestanden
    Je kan een paard naar het water leiden, maar je kan het niet dwingen te drinken.

  7. #7

    Mooi workaround en vervolgvraag

    @edmoor en @AenA bedankt voor de tips. Ik ben wat verder gaan zoeken en heb en mooie oplossing gevonden.
    Geen keuzerondjes - dus ook geen rare en nare effecten - en geen ActiveX.
    Zie bijgevoegd bestand.

    Interessant bij dit onderwerp is de volgende link:
    https://office-oplossingen.nl/2013/0...uete-in-excel/

    Code:
    Option Explicit
    
    Private Sub Workbook_Open()
    
        Application.MoveAfterReturn = False
              
        Application.OnKey "{down}", ""
        Application.OnKey "{up}", ""
        Application.OnKey "{left}", ""
        Application.OnKey "{right}", ""
        
        Application.Cursor = xlNorthwestArrow
        
        
        Worksheets("Enquête").Select
        Range("A1:K1").Select
        ActiveWindow.Zoom = True
        'Range("D4").Select
        
    
    End Sub
    
    Private Sub Workbook_BeforeClose(CANCEL As Boolean)
    
        Application.MoveAfterReturn = True
        
        Application.OnKey "{down}"
        Application.OnKey "{up}"
        Application.OnKey "{left}"
        Application.OnKey "{right}"
        
        Application.Cursor = xlDefault
        
    End Sub
    Code:
    Option Explicit
    
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    
    ' Voor een mooi rondje en rondje met punt letterype 'Wingdings2' selecteren
    
    Dim i As Integer
    
        Application.ScreenUpdating = False
        
    
        If LCase(ActiveSheet.Cells(1, 2).Value) <> "invullen" Then
          ' niets doen, we zijn een enquete aan het invoeren
        ElseIf ActiveCell.Column > 3 And ActiveCell.Column <= 8 Then
            
            If ActiveCell.Value = Chr(153) Then
                'alles op deze regel leeg maken
                For i = 4 To 8
                    Cells(ActiveCell.Row, i).Value = Chr(153)
                Next i
                'huidige cel selecteren
                ActiveCell.Value = Chr(158)
            End If
        
        End If
        
        'Application.ScreenUpdating = True
        
    End Sub

    Ik loop nu wel tegen het volgende aan:

    Zoals jullie zien is de mouse-pointer aangepast naar een pijltje.

    De cel-pointer is nog een zwart vierkantje. Het zou mooi zijn als deze niet zwart, maar transparant is.
    Het lijkt dan net alsof je een formulier invult.

    Is het mogelijk om een celpointer (de randen) in VBA transparant te maken?

    Pieter
    Bijgevoegde bestanden Bijgevoegde bestanden

  8. #8
    Giga Honourable Senior Member
    Geregistreerd
    2 March 2013
    De code in Thisworkbook is overbodig. Dit is ook voldoende voor het aan- en uitvinken

    Code:
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      If LCase(Cells(1, 2)) <> "invullen" Then Exit Sub
        If Target.Value = Chr(153) Then
          Cells(Target.Row, 4).Resize(, 5) = Chr(153)
          Target.Value = Chr(158)
        End If
    End Sub
    Je kan een paard naar het water leiden, maar je kan het niet dwingen te drinken.

  9. #9
    Dank je wel voor de verkorte code.

    Is er een oplossing voor onderstaande?

    De cel-pointer is nog een zwart vierkantje. Het zou mooi zijn als deze niet zwart, maar transparant is.

  10. #10
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    8 September 2000
    Locatie
    Zuid-Holland
    Dat kan niet.
    Maar kijk eens of je dit wat vind (Kleine uitbreiding op de code van VenA):
    Code:
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      If LCase(Cells(1, 2)) <> "invullen" Then Exit Sub
        If Target.Value = Chr(153) Then
          Cells(Target.Row, 4).Resize(, 5) = Chr(153)
          Target.Value = Chr(158)
          Cells(Target.Row, 2).Select
        End If
    End Sub
    Daarnaast denk ik dat je het geheel beter iin een userform kan gieten.
    Laatst aangepast door edmoor : 27 March 2020 om 18:38
    "It's hardware that makes a machine fast. It's software that makes a fast machine slow. "
    Op rechtstreekse vragen via email of privébericht reageer ik niet. Daar is het forum voor.
    Lees ook: http://www.helpmij.nl/forum/announcement.php?f=5

  11. #11
    Giga Honourable Senior Member
    Geregistreerd
    2 March 2013
    Het aantal regels in de VO moet je ook nog reduceren. Hoe meer regels hoe trager het bestand.

    Samengevoegde cellen is ook niet zo'n goed idee.

    De formule voor het resultaat kan ook wel wat eenvoudiger.
    Code:
    =MATCH(CHAR(158);D4:H4;0)
    Laatst aangepast door VenA : 27 March 2020 om 19:36
    Je kan een paard naar het water leiden, maar je kan het niet dwingen te drinken.

  12. #12
    Bedankt voor de waardevolle reactie. Het werkt

Berichtenregels

  • U mag geen nieuwe vragen starten.
  • U mag niet reageren op berichten.
  • U mag geen bijlagen versturen.
  • U mag uw berichten niet bewerken.
  •  
Helpmij.nl
Helpmij.nl

Helpmij.nl en business

Partners
Sponsoren