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

Om de een of andere reden is in mijn bestand, opgemaakt als tabel, een cel verdwenen.

Status
Niet open voor verdere reacties.

Marsjahe

Gebruiker
Lid geworden
27 okt 2023
Berichten
60
Besturingssysteem
windows 11
Mijn zeer uitgebreide excel-bestand van mijn verzameling is opgemaakt als tabel. Doordat er een cel uit een kolom is verdwenen zijn nu alle daarop volgende cellen een plaatsje omhoog geschoven en kloppen de gegevens niet meer met de aangrenzende rijen. Hoe kan ik die bewuste cel weer terug zetten. De bewuste cel had overigens geen inhoud. De cel zou moeten worden ingevoegd tussen 8342 3n 8343.
 

Bijlagen

Misschien handig als je even laat weten welke kolom het betreft?
Maar verder is het niet moeilijk, selecteer de cellen in de betreffende kolom van rij 8343 t/m rij 9779, en kopieer en plak ze één rij lager.
 
Laatst bewerkt:
Oeps, ja natuurlijk. Betreft kolom J.
 
Je bedoeld een rij invoegen?
Zoja ga in de tabel op een cel in rij 8343 staan en voeg een rij in met de rechtermuisknop.
 
Laatst bewerkt:
Weet je zeker dat het één kolom betreft?
Kik eens naar de rijen 9745 en 9746, kolommen J en K, de nummering lijkt toch aardig opeenvolgend te zijn.
 
Het is toch wat ingewikkelder. Als ik de kolommen copieer komen de onderliggende hyperlinks op de goede plaats, maar de daarbij behorende tekst verschuift ook door. Het zijn dus de onderliggende hyperlinks die een plaats zijn verschoven. De tekst staat dus wel op zijn plaats, maar de hyperlinks zijn een plek naar boven verschoven.
 
In 9745 staat de hyperlink die hoort bij 9746 en dit gebeurt telkens weer beginnend bij 8343/8344
 
Dus de hyperlink van 8344 hoort bij de tekst van 8345 (8343 heeft geen hyperlink!).
Dat is op te lossen met een macro.
 
Ja dat klopt, lege cellen hebben normaal gesproken geen macro. Alleen de cellen met tekst hebben een bijbehorende hyperlink met een gelijk nummer in die link. Dus ja de hyperlink van 8344 hoort bij 8345. Vanaf daar naar beneden zijn op een of andere manier alle hyperlinks verschoven. Als dit op te lossen is met een macro wil ik je vragen of jij die kunt schrijven, want zover reikt mijn excel-kennis niet.
Voor de duidelijkheid vóór 8344 zijn alle cellen nog wel in orde.
 
correctie normaal gesproken geen macro moet zijn geen hyperlink.
 
Plak onderstaande code achter Blad1 en voer uit.
Maar je maakt uiteraard eerst een degelijke backup!
Code:
Sub BewerkHyperlinks()
    'Als de cel een hyperlink heeft kopieer die dan naar beneden
    'en verwijder hyperlink uit de betreffende cel.
    'Doe dit van beneden naar boven van rij 9767 t/m rij 8345
    
    For r = 9767 To 8344 Step -1
        If Cells(r, 10).Hyperlinks.Count > 0 Then
            Hyperlinks.Add Anchor:=Cells(r + 1, 10), _
            Address:=Cells(r, 10).Hyperlinks(1).Address, _
            TextToDisplay:=Cells(r + 1, 10).Text
            Cells(r, 10).Hyperlinks.Delete
            n = n + 1
        End If
    Next
    MsgBox n & " hyperlinks doorgeschoven"
End Sub
 
Sorry voor mijn onwetendheid, maar achter blad1..... Bedoel je dat ik een nieuwe tab moet maken achter blad1(Cat) en daar de macro moet plakken en dus niet achter de twee reeds aanwezige macro's (hsv en noodstr)
 
Je mag de code ook in Module1 plaatsen, maar dan moet je er voor zorgen dat Cat het actieve werkblad is op het moment dat je de macro start.

Nog even e.e.a. getest, er zitten nog meer fouten in je hyperlinks. Plaats onderstaande code achter Blad1 (of in Module1 ;)) en voer uit. In de kolommen AA, AB en AC komt het resultaat van de test. Niet alle meldingen betreffen fouten.
Code:
Sub ListHyperlinks()
    For r = 1 To 9767
        Cells(r, 27) = Cells(r, 10)
        If Cells(r, 10).Hyperlinks.Count > 0 Then
            Cells(r, 28) = Cells(r, 10).Hyperlinks(1).Address
            If InStr(Cells(r, 28), Right(Cells(r, 10), 3)) = 0 Then
                Cells(r, 29) = "Mogelijk conflict"
                n = n + 1
            End If
        End If
    Next
    MsgBox n & " mogelijke conflicten"
End Sub
 
Ik heb nog niets gedaan. Vraag moet ik eerst de eerste macro uitvoeren die je maakte en dan de tweede die je stuurde of alleen de laatste die hierboven staat om alles weer goed te krijgen?
 
Eerst de macro uit bericht #11, die herstelt de "doorgeschoven" hyperlinks.
Daarna de macro uit bericht #13, die controleert alle hyperlinks en meldt mogelijke conflicten.
 
Ok, ik ga het proberen. Ik laat nog van me horen.
 
En dit zijn die mogelijke conflicten:
5304Brieven/Br5204.jpg
4963Brieven/Br4964.jpg
4759Brieven/Br4756.jpg
2338Brieven/Br2337.jpg
2460Brieven/Brcopy919.jpg
4073Brieven\bRCOPY925.JPG
4074Brieven\BrCOPY1251.JPG
2471Brieven\Br4074.jpg
2470Brieven\Br2471.jpg
4075Brieven\Br2470.jpg
534Brieven\Br4075.JPG
4228Brieven/Br4225.jpg
4232Brieven/Br4332.jpg
4315Brieven/Br4215.jpg
1260Brieven/Nbr1261.jpg
 
Ahulpje,
Mijn bestand werkt weer als vanouds, bedankt daarvoor. Heb je overigens een idee hoe dit probleem kon ontstaan?
 
Ik heb werkelijk geen idee hoe dit ontstaan kan zijn, maar fijn dat het opgelost is.
Hoe komt het trouwens dat in de hyperlinks zowel forward- als backward slashes gebruikt worden? Geeft dat geen problemen?
 
Dat komt omdat in het verleden mijn partner ook meewerkte aan het bijhouden van het bestand, zij gebruikte de slashes wisselend en eerlijk gezegd weet ik niet welke de juiste zijn forward of backward. Het geeft overigens geen problemen. Zelf gebruik ik de backward.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan