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

Code aanpassen of niet.

Status
Niet open voor verdere reacties.

glda19

Terugkerende gebruiker
Lid geworden
14 jan 2008
Berichten
1.064
Ik heb in de onderstaande code en in een andere module eigenlijk 3 x te zelfde code staan enkel de ene keer moet er waarde worden afgetrokken en de 2 andere keren opgeteld.
Zou is het zinvol om een aparte sub te schrijven met die code er in en dan het een variabel waarin ik mee geef - of +
doet dit iets aan de snelheid of is het netter code die meerdere x voorkomt in een sub onder te brengen en die dan telkens aan te roepen.

Heb dit geprobeerd om er een sub van de maken. Maar stuit op volgend probleem.
Weet niet hoe de veriable optellenAftrekken te declareren. als een string gaat dit niet want dan wordt + = "+" en de werkt de formules niet meer.

Code:
Select Case strTypeSelection

     "Range"
        For Each shp In ActiveSheet.Shapes
       Case         If Not Application.Intersect(shp.TopLeftCell, ActiveSheet.Range(RngVerlofBereik.Address)) Is Nothing Then
                    strVerlofcodevormTekst = shp.TextFrame.Characters.text
                    IntVerlofcodeRij = opzoekOpzoekenVerlofcodeRij(strVerlofcodevormTekst)
                    If IntVerlofcodeRij > 0 Then
                        If InStr(1, strVerlofcodevormTekst, "voormiddag", 1) Then
                            Worksheets("Datablad").Range("c" & IntVerlofcodeRij) = Worksheets("Datablad").Range("c" & IntVerlofcodeRij).Value - 0.5
                            shp.Delete 'verwijderen van het geselecteerde symbool

                        ElseIf InStr(1, strVerlofcodevormTekst, "namiddag", 1) Then
                            Worksheets("Datablad").Range("c" & IntVerlofcodeRij) = Worksheets("Datablad").Range("c" & IntVerlofcodeRij).Value - 0.5
                            shp.Delete 'verwijderen van het geselecteerde symbool

                        Else
                            Worksheets("Datablad").Range("c" & IntVerlofcodeRij) = Worksheets("Datablad").Range("c" & IntVerlofcodeRij).Value - 1
                            shp.Delete 'verwijderen van het geselecteerde symbool
                        End If
                    End If
                End If
        Next shp
    Case "Rectangle"
    
        'Uitlezen van de de tekst in de geselecterde vorm
        strVerlofcodevormTekst = Selection.ShapeRange.TextFrame.Characters.text
        'De set is nodig omdat door het opzoeken van de de code in het datablad de selectie weg valt
        'De set behoud het adres van de de gekozen selectie zodat we die later kunnen verwijderen
        ' Instr(1, strVerlofcodevormTekst, "voormiddag", 1)
        'instr zoek (van een bepaalde postie in de gevraagde tekst , de te zoeken tekst op en dan een code voor te
        
       Set EnkelShapeVerwijderen = ActiveSheet.Shapes(Selection.Name)
        
        'Opzoeken van het rijnr waarop de gevonden verlofcode staat op het werkblad Datablad
        IntVerlofcodeRij = opzoekOpzoekenVerlofcodeRij(strVerlofcodevormTekst)
        If IntVerlofcodeRij > 0 Then
        
        
                            If InStr(1, strVerlofcodevormTekst, "voormiddag", 1) Then
                                Worksheets("Datablad").Range("c" & IntVerlofcodeRij) = Worksheets("Datablad").Range("c" & IntVerlofcodeRij).Value - 0.5
                                EnkelShapeVerwijderen.Delete 'verwijderen van het geselecteerde symbool
        
                            ElseIf InStr(1, strVerlofcodevormTekst, "namiddag", 1) Then
                                Worksheets("Datablad").Range("c" & IntVerlofcodeRij) = Worksheets("Datablad").Range("c" & IntVerlofcodeRij).Value - 0.5
                                EnkelShapeVerwijderen.Delete 'verwijderen van het geselecteerde symbool
                                   
                            Else
                                Worksheets("Datablad").Range("c" & IntVerlofcodeRij) = Worksheets("Datablad").Range("c" & IntVerlofcodeRij).Value - 1
                                EnkelShapeVerwijderen.Delete
                            End If
            End If
        

End Select
 
onder tussen iets gevonden.
Code:
dim a, b as int
dim operand as string
dim resultaat as integer
a=10 
b =15
operand = "+"
resultaat = Evaluate(a & operand & b)
 
Wat denk je dat dit
Code:
dim a, b as int
Doet? Waarom zou je b als variant declareren en b als ‘int’ (wat niks is trouwens)?
Als je a en b als geheel getal wilt gebruiken, kan dat alleen zo:
Code:
dim a As Integer, b as integer
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan