Trouver la bonne fonction ou formule ?

  • Initiateur de la discussion Initiateur de la discussion Grenouille14
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

G

Grenouille14

Guest
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

Dernière modification par un modérateur:
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
 
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...
 
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...
 
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

Dernière édition:
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 modification par un modérateur:
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

Re : Trouver la bonne fonction ou formule ?

Merci pour ce complément de macro... mais en fait ce n'était pas le cas...
Cependant je prépare un nouveau "défi", du moins c'en est un pour moi, peut-être pas pour les experts que vous êtes sur ce forum...
Cdlt
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour