Autres effacer des cellules ne contenant pas de liens hypertexte

thierry69001

XLDnaute Nouveau
Bonjour à tous

n'ayant pas trouvé la réponse à ma question dans le forum, je me permets de vous soumettre ma requête :
j'ai une feuille excel dans laquelle figure différentes valeurs dont des liens hypertextes.
Je cherhce un code pour supprimer toutes les cellules entre B2 et Lxxx ne contenant pas de liens hypertexte.
Avez vous une idée de code simple?
par avance merci
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour et bienvenue sur le forum,

Vous avez certainement oublié le point ci-dessous lorsque vous avez lu la charte du forum :
5 – La possibilité de joindre des fichiers est donnée sur ce forum. Ne pas hésiter à utiliser cette fonction, tout en veillant que les données soient bidons et donc qu’aucune donnée confidentielle, nominative ne soit dans le fichier.

Joindre un fichier exemple anonymisé et sans données confidentielles permet de rester dans le concret et le particulier de la situation, plutôt que de s'engager dans des réponses théoriques.

Cordialement
 

thierry69001

XLDnaute Nouveau
Bonjour,

effectivelent , je vous joints un fichier basique.
Je souhaiterais dans la feuille présentée, supprimer (et decaller) vers la gauche toutes les cellules qui ne sont pas des liens hypertexte.
par avance merci de votre aide
cordialement
 

Pièces jointes

  • essai.xlsx
    8.7 KB · Affichages: 11

Rouge

XLDnaute Impliqué
Bonjour,

Voici un bout de code qui fera l'affaire
VB:
Sub Effacer()
    Dim l As Long, c As Long, DerLig As Long, DerCol As Long
    Application.ScreenUpdating = False
    DerLig = Range("A" & Rows.Count).End(xlUp).Row
    DerCol = Range("A1").End(xlToRight).Column
    For c = 1 To DerCol
        For l = 2 To DerLig
            If Cells(l, c).Hyperlinks.Count = 0 Then Cells(l, c) = ""
        Next l
    Next c
End Sub

Cdlt
 

thierry69001

XLDnaute Nouveau
Sub Effacer() Dim l As Long, c As Long, DerLig As Long, DerCol As Long Application.ScreenUpdating = False DerLig = Range("A" & Rows.Count).End(xlUp).Row DerCol = Range("A1").End(xlToRight).Column For c = 1 To DerCol For l = 2 To DerLig If Cells(l, c).Hyperlinks.Count = 0 Then Cells(l, c) = "" Next l Next c End Sub
Merci Rouge pour ce bout de code.

Toutefois, j'aimerais supprimer et non juste effacer les cellules.
De plus, si possible, je souhaiterais ne pas toucher à la colonne A ni la ligne 1

cdt
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Avec la macro suivante
VB:
Sub Truc()
    Dim c As Range
    With Sheets("Sheet2").Range("A1").CurrentRegion
        For Each c In .Offset(1).Resize(.Rows.Count - 1)
            If c.Hyperlinks.Count = 0 Then c = Empty
        Next c
    End With
End Sub

Cordialement
 

Pièces jointes

  • essai.xlsm
    21.5 KB · Affichages: 2

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Alors j'ai nommé la plage A2:C12 'DATAS' et fait la macro suivante.

VB:
Sub Truc()
    Dim c As Range

    With Sheets("Sheet2").Range("DATAS")
        For Each c In .Cells
            If c.Hyperlinks.Count = 0 Then c = Empty
        Next c
        For Each c In .Cells
            If c.Hyperlinks.Count > 0 And c.Column > c.End(xlToLeft)(, 1).Column Then
                c.Copy c.End(xlToLeft)(, 1)
                c = Empty
            End If
        Next
    End With
End Sub

A vous d'adapter

Cordialement
 

Rouge

XLDnaute Impliqué
Ceci alors:
VB:
Sub Effacer()
    Dim l As Long, c As Long, DerLig As Long, DerCol As Long
    Application.ScreenUpdating = False
    DerLig = Range("A" & Rows.Count).End(xlUp).Row
    DerCol = Range("A1").End(xlToRight).Column
    For c = DerCol To 1 Step -1
        For l = 2 To DerLig
            If Cells(l, c).Hyperlinks.Count = 0 Then Cells(l, c).Delete shift:=xlToLeft
        Next l
    Next c
End Sub

Cdlt
 

Hasco

XLDnaute Barbatruc
Repose en paix
pour etre plus clair, dans le fichier joint vous trouverez ce que j'ai au départ et le résultat que souhaite atteindre

Montré dès le premier post, nous n'aurions pas eu à travailler pour rien.
Je note au passage, que vous n'avez rien proposé vous-même en solution (pas le début d'un commencement de macro) et pas même un classeur .xlsm.

donc pour moi, je passe mon chemin

Bonne continuation
 

thierry69001

XLDnaute Nouveau
Bonjour,

desole de mon absence et non retour lors de ces derniers jours.
effectivement j'aurais du envoyoyer le fichier plus tot. Je n'y ai pas pensé.
en ce qui concerne lecode, je n'ai aucune connaissance donc difficile de débuter qqchose.
merci pour votre collaboration, je pense qu'avec le fichier joint lors de mon précédent message ce sera plus simple pour vous.
cordialement
 

Pièces jointes

  • test.xlsm
    18 KB · Affichages: 3

Discussions similaires

Statistiques des forums

Discussions
312 305
Messages
2 087 082
Membres
103 458
dernier inscrit
Vulgaris workshop