Trouver la bonne fonction ou formule ?

Grenouille14

XLDnaute Nouveau
Bsr,

je me bas depuis le milieu de l'aprés-midi pour me faciliter la tâche afin de compléter le tableau suivant et éviter de coller continuellement à chaque fois les url...

Comme on le voit dans le début du tableau, j'aimerais reproduire pour chaque société figurant à gauche les url donnés sachant que pour certaines il n'y en a pas...

J'ai essayé plusieurs fois mais je tourne en rond.

Merci d'avance pour vos solutions efficaces...

PS : si cela est plus facile, je joins un extrait du tableau en format excel...
 

Pièces jointes

  • Capture Excel.jpg
    Capture Excel.jpg
    51.2 KB · Affichages: 55
  • Capture Excel.jpg
    Capture Excel.jpg
    51.2 KB · Affichages: 56
  • Capture Excel.jpg
    Capture Excel.jpg
    51.2 KB · Affichages: 56
  • Exemple pour forum.xls
    14.5 KB · Affichages: 78
  • Exemple pour forum.xls
    14.5 KB · Affichages: 81
  • Exemple pour forum.xls
    14.5 KB · Affichages: 80
Dernière édition:

PMO2

XLDnaute Accro
Re : Trouver la bonne fonction ou formule ?

Bonjour,

Une piste avec le code suivant à copier dans un module standard.

Faites un test sur une COPIE de votre classeur.

Code:
Sub CopieURL()
Dim S As Worksheet
Dim nbLig&
Dim R As Range
Dim T()
Dim i&
Dim var
Set S = ActiveSheet
nbLig& = S.[a65536].End(xlUp).Row
S.Columns(1).Insert
Set R = S.Range("a1:a" & nbLig& & "")
ReDim T(1 To nbLig&, 1 To 1)
For i& = 1 To nbLig&
  T(i&, 1) = i&
Next i&
R = T
Set R = S.Range("a1:c" & nbLig& & "")
R.Sort Key1:=[b1], Order1:=xlAscending, _
       Key2:=[c1], Order2:=xlAscending, Header:=xlNo
var = R
For i& = 1 To nbLig& - 1
  If var(i&, 2) = var(i& + 1, 2) Then
    If var(i&, 3) <> "" Then
      var(i& + 1, 3) = var(i&, 3)
    End If
  End If
Next i&
R = var
R.Sort Key1:=[a1], Order1:=xlAscending, Header:=xlNo
S.Columns(1).Delete
End Sub

Cordialement.

PMO
Patrick Morange
 

Grenouille14

XLDnaute Nouveau
Re : Trouver la bonne fonction ou formule ?

Je n'ai peut-être pas été assez clair, veuillez m'en excuser...
Je prends l'exemple de la société BISCHOF qui a l'url "www.bk-packaging.fr"... Je souhaite donc copier cet url à côté de chaque cellule dans laquelle figure "BISCHOF....", idem ensuite pour "www.coiffidis.fr" à côté de "COIFFIDIS"... Bien sûr, je pourrais continuer à copier ou étirer chaque url mais j'en ai 430 comme ça, c'est pourquoi je cherche une autre solution. C'est aussi un moyen de continuer à découvrir les fonctions d'excel...

Prendre en considération le fait que toute les société n'ont pas d'url, comme "POIDS LOURDS 61" par exemple.

Voilà j'espère que c'est plus clair...
 

Grenouille14

XLDnaute Nouveau
Re : Trouver la bonne fonction ou formule ?

Bonsoir PMO,

et merci pour cette réactivité. Malheureusement je ne suis pas très doué en macro non plus... Je sais juste en faire de petites simples et redondantes...

Là, j'ai créé un extrait de mon fichier en respectant les colonnes, j'ai pris ta "recette", je l'ai rentrée dans une "coque" de macro vide que j'ai enregistrée et puis j'ai essayé de la faire tourner mais il ne se passe rien... J'ai rééssayé en cliquant d'abord dans une cellule avec un url avant de lancer la macro, mais encore rien...
Je ne dois certainement pas faire ce qu'il faut...
 

job75

XLDnaute Barbatruc
Re : Trouver la bonne fonction ou formule ?

Re,

Ci-joint le fichier. Cliquer sur le bouton pour compléter les URL.

La macro (dans un module) est relativement simple :

Code:
Sub URL()
Dim cel As Range, i As Long
For Each cel In Range("B:B").SpecialCells(xlCellTypeConstants, 2)
i = 1
While cel.Offset(i,-1) = cel.Offset(0,-1)
cel.Copy cel.Offset(i)
i = i + 1
Wend
Next
End Sub

A+

Edition : le tableau doit être préalablement trié (comme celui fourni) pour que les noms identiques se retrouvent ensemble. Par ailleurs l'URL doit être bien affecté au 1er nom.
 

Pièces jointes

  • Exemple pour forum.xls
    28.5 KB · Affichages: 42
  • Exemple pour forum.xls
    28.5 KB · Affichages: 45
  • Exemple pour forum.xls
    28.5 KB · Affichages: 45
Dernière édition:

Grenouille14

XLDnaute Nouveau
Re : Trouver la bonne fonction ou formule ?

Whaou !! Génial, comme quoi une fois de plus la preuve que ce ne sont pas forcément les plus longues les plus efficaces... et bien sûr je parle des macros... ;-)

J'aimerais un jour pouvoir comprendre ces quelques lignes et surtout pouvoir en faire autant...

Encore merci

Christophe
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Trouver la bonne fonction ou formule ?

Bonjour Christophe, le forum,

Un petit complément pour le cas où il y aurait plusieurs URL par nom :

Code:
Sub URL()
Dim cel As Range, i As Long
For Each cel In Range("B:B").SpecialCells(xlCellTypeConstants, 2)
i = 1
While cel.Offset(i, -1) = cel.Offset(0, -1) [COLOR="Red"]And cel.Offset(i) = ""[/COLOR]
cel.Copy cel.Offset(i)
i = i + 1
Wend
Next
End Sub

A+
 

Pièces jointes

  • Exemple pour forum.xls
    31.5 KB · Affichages: 73
  • Exemple pour forum.xls
    31.5 KB · Affichages: 71
  • Exemple pour forum.xls
    31.5 KB · Affichages: 73

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 814
dernier inscrit
JLGalley