Supprimer les lignes qui ne contienne pas de lien hypertexte

Bonjour,

j'aimerais savoir svp, si il est possible de créer une macro qui supprimerais les ligne entière si dans la colonne A les données ne contiennent pas de liens hypertexte (URL internet).

je savais pas quoi donner comme exemple donc en voila un quelconque :

A2 : voiture 1 (contenant un liens par exemple redirigeant sur le site de fiat)

A3 : prix (aucun liens)

A4 : statut (aucun liens)

A5 : voiture 2 (contenant un liens par exemple redirigeant sur le site de audi)

résultat souhaiter après la macro :

A2 : voiture 1 (contenant un liens par exemple redirigeant sur le site de fiat)

A3 : voiture 2 (contenant un liens par exemple redirigeant sur le site de audi)

la macro doit alors détecter quel cellule dans la colonne A ne contient pas de liens et supprimer la ligne entière

Merci d'avance

Bonjour

Code Module

Sub SupprimeLigneHyperlinks()
Dim Lien As Hyperlink
For Each Lien In ActiveSheet.Range("A:A").Hyperlinks
Range(Lien.Range.Address).EntireRow.Delete
Next
End Sub

Cordialement

dans le même style

Sub ExtractionLiensHypertextes()

Dim Cell As Range

'Boucle sur la plage A1 /A5

For Each Cell In Range("A1:A5")

If Cell.Hyperlinks.Count = 0 Then

MsgBox "je supprime"

End If

Next Cell

End Sub

Bonsoir,

tout d'abord merci à vous 2 de votre aide pour mon problèmes.

Amadéus a écrit :

Bonjour

Code Module

Sub SupprimeLigneHyperlinks()
Dim Lien As Hyperlink
For Each Lien In ActiveSheet.Range("A:A").Hyperlinks
Range(Lien.Range.Address).EntireRow.Delete
Next
End Sub

Cordialement

amadeus ta macro fonctionnent bien sauf que c'est excatement le contraire que je demander

une macro qui supprimerais les ligne entière si dans la colonne A les données ne contiennent pas de liens hypertexte(URL internet).

or actuellement elle me supprime toutes celle qui ont des liens

A2 : voiture 1 (contenant un liens par exemple redirigeant sur le site de fiat)

A3 : prix (aucun liens)

A4 : statut (aucun liens)

A5 : voiture 2 (contenant un liens par exemple redirigeant sur le site de audi)

résultat souhaiter après la macro :

A2 : voiture 1 (contenant un liens par exemple redirigeant sur le site de fiat)

A3 : voiture 2 (contenant un liens par exemple redirigeant sur le site de audi)

PS les " ... " signifier également que le tableur continuer bien après la cellule A5

gullaud a écrit :

dans le même style

Sub ExtractionLiensHypertextes()

Dim Cell As Range

'Boucle sur la plage A1 /A5

For Each Cell In Range("A1:A5")

If Cell.Hyperlinks.Count = 0 Then

MsgBox "je supprime"

End If

Next Cell

End Sub

ca me marque bien le message je supprime avec OK seulement rien ne ce passe

Merci d'avance pour vos retour.

j'espère que ce code te conviendra :

Sub ExtractionLiensHypertextes()

Dim Cell As Range

Dim ligne As Integer

ligne = 1

Dim ligne_a_effacer(100) As Integer 'variable tableau

'pour stocker les nuléros de lignes à supprimer

'Boucle sur la plage A1:A5

For Each Cell In Range("A1:A5")

If Cell.Hyperlinks.Count = 0 Then

ligne_a_effacer(ligne) = ligne

Else

ligne_a_effacer(ligne) = 0

End If

ligne = ligne + 1

Next Cell

'suppression des lignes

ligne = 1

For parcours = 1 To 100

If ligne_a_effacer(parcours) <> 0 Then

Rows(ligne).Delete

Else

ligne = ligne + 1

End If

Next parcours

End Sub

gullaud a écrit :

j'espère que ce code te conviendra :

Sub ExtractionLiensHypertextes()

Dim Cell As Range

Dim ligne As Integer

ligne = 1

Dim ligne_a_effacer(100) As Integer 'variable tableau

'pour stocker les nuléros de lignes à supprimer

'Boucle sur la plage A1:A5

For Each Cell In Range("A1:A5")

If Cell.Hyperlinks.Count = 0 Then

ligne_a_effacer(ligne) = ligne

Else

ligne_a_effacer(ligne) = 0

End If

ligne = ligne + 1

Next Cell

'suppression des lignes

ligne = 1

For parcours = 1 To 100

If ligne_a_effacer(parcours) <> 0 Then

Rows(ligne).Delete

Else

ligne = ligne + 1

End If

Next parcours

End Sub

Bonjour gullaud,

ca à l'air de fonctionner mais il manque juste un petit détail c'est que mon tableau est plus grand que la ligne A1:A5

pour dire vrai sa serait A2 : A50 000, j'ai donc essayer de modifier par la suite For Each Cell In Range("A1:A5") par For Each Cell In Range("A1:A500") pour voir ce que cela donner mais la macro plante à la ligne ligne_a_effacer(ligne) = ligne

merci d'avance

essaye de replacer "integer" par "long"

Sub ExtractionLiensHypertextes()

Dim Cell As Range

Dim ligne As Long

ligne = 1

Dim ligne_a_effacer(100) As Long 'variable tableau

'pour stocker les numéros de lignes à supprimer

'Boucle sur la plage A2:A500

For Each Cell In Range("A2:A500")

If Cell.Hyperlinks.Count = 0 Then

ligne_a_effacer(ligne) = ligne

Else

ligne_a_effacer(ligne) = 0

End If

ligne = ligne + 1

Next Cell

'suppression des lignes

ligne = 1

For parcours = 1 To 100

If ligne_a_effacer(parcours) <> 0 Then

Rows(ligne).Delete

Else

ligne = ligne + 1

End If

Next parcours

End Sub

donc voila après essaie ca bug sur la ligne en rouge, j'ai l'impression en faite que du moment que j'entre autre choses que A1:A5 la macro ce met a buguer, une question que je me pose maintenant, est ce que ca change quelque chose si entre les cellule contenant des liens hypertexte, il y a des cellule vide ?

les nombre en vert correspondent il a entre eux ? est ce que a la place de 100 je doit rentrer la derniere celulle de mon tableur ?

Merci d'avance

j'ai trouver plus simple, mais il faut d'abord supprimer les lignes vides

Public Sub test()

Dim cell As Range

Dim i As Long

Feuil1.Select

i = 1

While Cells(i, 1) <> ""

x = Cells(i, 1)

Set cell = Cells(i, 1)

If cell.Hyperlinks.Count = 0 Then

Rows(i).Delete

Else

i = i + 1

End If

Wend

End Sub

gullaud a écrit :

j'ai trouver plus simple, mais il faut d'abord supprimer les lignes vides

Public Sub test()

Dim cell As Range

Dim i As Long

Feuil1.Select

i = 1

While Cells(i, 1) <> ""

x = Cells(i, 1)

Set cell = Cells(i, 1)

If cell.Hyperlinks.Count = 0 Then

Rows(i).Delete

Else

i = i + 1

End If

Wend

End Sub

re gullaud,

alors avec ca ont touche au but car cela fait son travail, peut être un peut trop étant donner que sa me supprime les en-tête des colonne situer sur toute la première ligne

comment faire maintenant pour que cette macro ne tienne pas compte de la première ligne ?

et aussi que doit on écrire a la place de "Feuil1.Select" ? car mon onglet à un nom personnaliser

Merci d'avance

remplacer au début de la procédure i=1 par i=2

feuil1.select par votrenom.select

attention

pour une feuille vous avez 2 noms nom de l'onglet nom de l'objet

1 : nom de l'onglet qui est en bas de la feuille de calcule

ex : azerty dans ce cas mettre sheets("azerty").select

2 :nom de l'objet feuille que l'on trouve dans le développeur visual basic

exemple : "donner" dans ce cas mettre : donner.select

je pense que pour vous la solution la plus simple est la 1

gullaud a écrit :

remplacer au début de la procédure i=1 par i=2

feuil1.select par votrenom.select

attention

pour une feuille vous avez 2 noms nom de l'onglet nom de l'objet

1 : nom de l'onglet qui est en bas de la feuille de calcule

ex : azerty dans ce cas mettre sheets("azerty").select

2 :nom de l'objet feuille que l'on trouve dans le développeur visual basic

exemple : "donner" dans ce cas mettre : donner.select

je pense que pour vous la solution la plus simple est la 1

impeccable sa fonctionne a toi de m'avoir aider pour la résolution de mon problème

Bonne soirée

je passe le sujet en résolue

Rechercher des sujets similaires à "supprimer lignes qui contienne pas lien hypertexte"