• Initiateur de la discussion Initiateur de la discussion hypo78
  • 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 !

hypo78

XLDnaute Impliqué
Bonjour à tous,

Je cherche à concaténer avec la condition si "valeur" de ma cellule >9.

Le résultat devra être exprimé sous la forme : 46046001 / 46046003 / ......

Un petit exemple en PJ sera certainement plus clair.

Je ne suis pas contre une petite macro avec une boucle qui rendrait la saisie moins fastidieuse. J'ai trouvé un exemple de Gorfael qui pourrait s'en approcher, tout du moins je crois...
Code:
Sub TEST()
Dim Cel As Range
For Each Cel In Range([A5], Cells(Rows.Count, "A").End(xlUp))
    If Cel <> "" Then Cel.Offset(0, 1) = IIf(Cel.Offset(0, 2) <> "", Cel.Offset(0, 2) & " ", "") & _
                                         IIf(Cel.Offset(0, 3) <> "", Cel.Offset(0, 3) & " ", "") & _
                                         IIf(Cel.Offset(0, 4) <> "", Cel.Offset(0, 4), "")
Next Cel
End Sub

Merci d'avance
 

Pièces jointes

Re : Concatener si

Re,

oui c'est vrai mais :
on peut simplifier tes 3 cellules en 1 en mettant : =SI(B6>9;B2&" / ";"")
Le problème par la suite c'est que la fonction Concatener est limitée en nombre d'arguments, et moi il m'en faut 35....

Je crois qu'il va falloir trouver un passionné du VBA.

Edit : autre solution, 2 cellules (cel1 et cel2) avec la formule concatener, et dans une 3 ème =cel1 & cel2

Pas Top mais çà fonctionne
 
Dernière édition:
Re : Concatener si

Bonsoir,

je pens que le code serais quelque choses comme cela :

Sub test()
Dim T() As Variant

T = Range(Cells(1, 7), Cells(5, 9))

ReDim Preserve T(1 To 5, 1 To 4)
For i = LBound(T, 1) To UBound(T, 2) - 1
If T(5, i) > CLng(9) Then
T(5, i) = T(1, i)
Debug.Print T(5, i)
T(5, 4) = T(5, 4) & T(5, i) & " / "
Debug.Print T(5, 4)
End If
Next i

[A5] = Left(T(5, 4), Len(T(5, 4)) - 3)
Erase T
End Sub

Ps : si vous avez le tableau sur les 35 colonnes avec les dates et le cellule ou le resultats sera restitué cela est faisable.

C'est à dire le tableau et a l'endroit ou vous voulais le resultat (les case reserver avec une couleur et les valeurs écrites (juste la valeur pour connaitre l'endroit reserver et se qui doit arriver avec le code VBA)


laurent
 
Dernière édition:
Re : Concatener si

Bonsoir,

Pour la date il faut connaitre les emplacements sur les autres feuilles pour pouvoir comparer, de plus se code est adapter, mais l'idée est la.

si vous avez le fichier avec les 35 colones. et la date a comparer avec les dates sur les autres feuilles en piece jointe

laurent
 
Re : Concatener si

Bonsoir,

le code VBA fonctionne pour la concatenation, pour la date c'est aussi fait.

faite un test pour me dir si cela convient.

Demain il faudra changer la date pour la prise en compte de la macro ont sera le premier.

car la macro prend en compte la condition = Aujourd'hui() "la fonction dans excel"

toute est ok

laurent
 

Pièces jointes

Dernière édition:
- 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

Discussions similaires

Réponses
5
Affichages
914
Réponses
15
Affichages
788
Réponses
8
Affichages
1 K
Retour