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

Quote

Weergeven resultaten 1 tot 10 van 10

Onderwerp: Rij met formules automatisch kopieeren

  • Vraag is opgelost
  1. #1
    Senior Member
    Geregistreerd
    17 oktober 2007
    Locatie
    Borsbeek (België)

    Rij met formules automatisch kopieeren

    Ik heb een testfiletjes gemaakt, met daarin momenteel 6 sheets.
    Achter "Blad1" staat de code om bij een wijziging in kolom "B", Sheet "1" te kopiëren en bij te voegen.
    Op "Blad6" staan koppelingen naar deze sheets. Dus in rij 2 naar '1', rij 3 naar '2', rij 4 naar '3', enz....
    In mijn oude file staan zo ongeveer 90 rijen met steeds dezelfde formules, telkens verwijzend naar de bewuste sheets, maar dan moest ik natuurlijk eerst al die sheets aanmaken.
    Met de code achter "Blad1", moet ik nu dus niet al die sheets meer op voorhand allemaal aanmaken, maar kan ik dus ook niet de formules op "Blad6" op voorhand zetten, want uiteraard worden dan de sheets die nog niet bestaan niet gevonden.
    Nu is het mijn vraag of nadat de volgende sheet is ingevoegd, op "blad6" de formules automatisch kunnen gekopieerd worden naar de volgende rij, waarbij dan de verwijzing naar de sheet ook wordt aangepast.
    Ik heb voor het kopiëren, plakken en wijzigen van de verwijzing een macro opgenomen, maar weet niet hoe ik die eventueel mee kan inpassen in de bestaande code achter "Blad1".
    Hopelijk is mijn uitleg duidelijk en als bijlage ook het testfiletje.
    Attached Files Attached Files

  2. #2
    Als het altijd "C1:C6" is.

    Code:
    Sub hsv()
    Dim sh As Worksheet
      For Each sh In ThisWorkbook.Worksheets
       If Not WorksheetFunction.Or(sh.Name = "Blad1", sh.Name = "Blad6") Then
      Sheets("Blad6").Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 6) = Application.Transpose(sh.Range("C1:C6").Value)
       End If
     Next sh
    End Sub
    ____________
    gr. Harry

    Wie met de duivel danst, moet het orkest betalen.

  3. #3
    Mega Senior Niels28's avatar
    Geregistreerd
    20 november 2008
    Locatie
    Boekel
    Afstand tot server
    ±68 km
    zoiets?

    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target = "" Or Target.Cells.Count > 1 Then Exit Sub
            If Target.Column = (2) Then
                Sheets("1").Copy , Sheets(Sheets.Count)
                With ActiveSheet
                    .Name = Target.Offset(, -1).Value
                End With
                        Lrow = Sheets("blad6").Cells(Rows.Count, "A").End(xlUp).Row + 1
            For i = 1 To 6
            Sheets("blad6").Cells(Lrow, i) = "=" & chr39 & Target.Offset(, -1).Value & chr39 & "!c" & i
            Next
            End If
      
    End Sub

  4. #4
    Senior Member
    Geregistreerd
    17 oktober 2007
    Locatie
    Borsbeek (België)
    Bedankt voor de snelle reactie.

    @ Harry, bij Uw code worden de rijen die reeds ingevuld zijn gekopieerd en vervolgens daaronder aansluitend geplakt, maar niet de formules wel de waarden die er reeds stonden.

    @Niels, Uw code werkt perfect en doet exact wat ik bedoel.

    Grtjs.
    Armand

  5. #5
    Mega Senior Niels28's avatar
    Geregistreerd
    20 november 2008
    Locatie
    Boekel
    Afstand tot server
    ±68 km
    Misschien moet je nog een controle toevoegen voor het geval het tabblad al bestaat?
    Anders krijg je een foutmelding als je een dubbele invult.

    Niels

  6. #6
    Senior Member
    Geregistreerd
    17 oktober 2007
    Locatie
    Borsbeek (België)
    Hallo Niels,
    Bedankt voor de mededeling.
    Maar dit is eigenlijk niet nodig, vermits de namen van de leden met frm worden ingevuld en wanneer je een iDnr in de cbo kiest, komt in de txtNaam de naam van de speler te staan die bij deze iD hoort en kan je dus zien of het bewuste iD nog vrij is.
    Zodoende kan je dus elk nr maar één keer gebruiken.

    Grtjs.
    Armand

  7. #7
    Senior Member
    Geregistreerd
    17 oktober 2007
    Locatie
    Borsbeek (België)
    Hallo Niels,
    In de testfile werkte de code perfect, dus ik dacht ik zet deze code in mijn originele file en pas aan waar nodig.
    En dit is het resultaat
    Code:
     Private Sub Worksheet_Change(ByVal Target As Range)
        If Target = "" Or Target.Cells.Count > 1 Then Exit Sub
                If Target.Column = (6) Then
                    Sheets("500").Copy , Sheets(Sheets.Count - 2)
                    With ActiveSheet
                        .Name = Target.Offset(, -1).Value
                        .Range("K2") = Target.Offset(, -1).Value
                    End With
                        Lrow = Sheets("Handicaps").Cells(Rows.Count, "B").End(xlUp).Row + 1
                    For i = 1 To 30
                    Sheets("Handicaps").Cells(Lrow, i + 1) = "=" & chr39 & Target.Offset(, -1).Value & chr39 & "!$m$" & i
                    Next
                End If
            If Not Intersect(Target, Range("A29")) Is Nothing Then
            Sheets("500").Rows("40:45").EntireRow.Hidden = False
            Select Case Target.Value
            Case 28
            Sheets("500").Rows("44:45").EntireRow.Hidden = True
            Case 25
            Sheets("500").Rows("41:45").EntireRow.Hidden = True
            Case 24
            Sheets("500").Rows("40:45").EntireRow.Hidden = True
            End Select
            End If
    End Sub
    Nu worden de gegevens correct weggeschreven en gekopieerd enz...
    Maar de handicaps staan in de cellen "M15:M44" en wanneer deze dan gekopieerd worden, worden deze gewijzigd in "M1:M30".
    Ik dacht om dit op te lossen verander ik gewoon "1 to 30" in "15 to 44", maar dat werkte dus niet.
    Nu werd alles wel niet veranderd maar dan wel 15 kolom verder opgeschoven alsook werd de eerste geplakte rij gewoon overschreven.
    Ik weet in de testfile, had ik het gewoon gedaan van rij 1 tot 6, maar ik dacht dat ik dit dan gewoon kon aanpassen naar 15 to 44.

    Grtjs.
    Armand

  8. #8
    Senior Member
    Geregistreerd
    17 oktober 2007
    Locatie
    Borsbeek (België)
    Oeps Niels,

    Ben iets te snel geweest.
    Heb het gevonden.
    Ik heb de code
    Code:
    For i = 1 To 30
             Sheets("Handicaps").Cells(Lrow, i + 1) = "=" & chr39 & Target.Offset(, -1).Value & chr39 & "!$m$" & i
             Next
    als volgt gewijzigd
    Code:
    For i = 1 To 30
             Sheets("Handicaps").Cells(Lrow, i + 1) = "=" & chr39 & Target.Offset(, -1).Value & chr39 & "!$m$" & i + 14
             Next
    Maar heb toch nog een vraagje.
    Kan ik de Option Button op mijn frm selecteren gewoon met enter of moet ik die steeds gewoon aanklikken.


    Grtjs.
    Armand

  9. #9
    Mega Senior Niels28's avatar
    Geregistreerd
    20 november 2008
    Locatie
    Boekel
    Afstand tot server
    ±68 km
    Met enter kun je hem niet aanvinken met spatie wel.
    Het selecteren kun ja aangeven bij de tabvolgorde

    Niels

  10. #10
    Senior Member
    Geregistreerd
    17 oktober 2007
    Locatie
    Borsbeek (België)
    Hallo Niels,

    Bedankt voor je reactie.
    Wist niet dat dit ging met de spatiebalk, het selecteren gebeurde al met de tabvolgorde

    Grtjs.
    Armand

Berichtenregels

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

Helpmij.nl en business

Partners
Sponsoren
Linkpartners
Aanbiedingen