Résolu XL pour MAC Simplifier une formule et la recopier

Baldu

XLDnaute Nouveau
Bonjour,

Je suis débutant mais je cherche à créer un classeur pour me faciliter la tâche...
J'ai donc créé:

- Une feuille d'Inventaire composée d'une colonne Matériel (avec tous les articles), suivi de 60 colonnes représentant les points (lieux) d'inventaire.

- Une feuille des Totaux composée d'une colonne Matériel, suivi d'une colonne Quantité et d'une colonne Références. Avec une formules Somme qui renvoi bien les totaux de chaque articles de chaque points (lieux) de la feuille d'inventaire.

- Une feuille de Visite composée de plusieurs colonnes dont une nommée Matériel à poser où je souhaite que les infos de l'inventaire se recopient sous forme de texte (nombre et désignation de l'article) pour chaque points (lieux) tout en ne mettant rien si l'article n'est pas présent.

J'ai donc créé cette formule (raccourcie pour l'exemple mais qui se répète jusqu'à C49):
=SI(Inventaire!C2<>"";Inventaire!C2&" "&Inventaire!A2&"; ";"")
&SI(Inventaire!C3<>"";Inventaire!C3&" "&Inventaire!A3&"; ";"")

La formule fonctionne mais maintenant j'aimerais savoir s'il est possible de la simplifier et aussi comment la recopier automatiquement vers tous les points (lieux) du tableau de visite.

J'ai essayé avec la poignée de recopie mais elle crée ce type de formule:
=SI(Inventaire!C3<>"";Inventaire!C3&" "&Inventaire!A3&"; ";"")
&SI(Inventaire!C4<>"";Inventaire!C4&" "&Inventaire!A4&"; ";"")

alors qu'il me faudrait ce type là:
=SI(Inventaire!D2<>"";Inventaire!D2&" "&Inventaire!A2&"; ";" ")
&SI(Inventaire!D3<>"";Inventaire!D3&" "&Inventaire!A3&"; ";" ")

Le problème vient à mon avis du fait que les infos de l'inventaire sont en ligne (à l'horizontale) et que je veux les recopier en colonne (à la verticale)

J'espère avoir été assez clair et vous remercie par avance de votre aide...
 
Ce fil a été résolu! Aller à la solution…

job75

XLDnaute Barbatruc
Bonjour Baldu, bienvenue sur XLD,

Ce n'est pas tout à fait clair, joignez votre fichier anonymisé en montrant les résultats à obtenir.

A+
 

Baldu

XLDnaute Nouveau
Bonjour @_Thierry ,

Du coup le $ me permet de verrouiller les lignes ou colonnes.
Et pour incrémenter les colonnes plutôt que les lignes, c'est possible?

Merci
 

_Thierry

XLDnaute Barbatruc
Re Baldu

Oui c'est bien ça les références absolues surtout quand on drague ensuite !

=IF(Inventaire!$C$2<>"";Inventaire!$C$2& " " & Inventaire!$A$2;"")
= On Vérouille tout , la formule draguée aura le même résultat partout

=IF(Inventaire!C$2<>"";Inventaire!C$2& " " & Inventaire!A$2;"")
On Vérouille les Lignes

=IF(Inventaire!G2<>"";Inventaire!G2& " " & Inventaire!$A2;"")
Et donc un mixte pour le cas présent, on vérouille la Colonne que pour A...

Astuce du Jour ! Quand on a la cellule selectionnée dans la Barre de Formule

1595158053489.png
Et que l'on click sur C2 dans la Formule on peut presser la touche de fonction F4 et on a les Options Absolues qui changent à chaque pression du F4...

Bonne découverte !
@+Thierry
 

Baldu

XLDnaute Nouveau
Merci @_Thierry ,

Du coup en faisant:
=SI(Inventaire!S$2<>"";Inventaire!S$2&" "&Inventaire!$A$2&"; ";" ")
&SI(Inventaire!S$3<>"";Inventaire!S$3&" "&Inventaire!$A$3&"; ";" ")
Les lignes sont bien verrouillées ce qui fait une recopie à l'identique mais je voudrais que les colonnes S s'incrémentent à chaque ligne de recopie.
 

_Thierry

XLDnaute Barbatruc
As tu regardé mon test au moins ?
Je ne mets pas de Dollars dans S du tout...
@+Thierry

Dans ce cas c'est C2 mais idem pas de $

EDIT 14H03 Je viens de regarder le fichier fourni, oui sur Table (Tabelau) ca pose problème on dirait bien, il ne sait pas interpréter les références absolues... Là je donne ma langue au chat, sans VBA je ne vois pas et en plus tu es sur Mac...
 
Dernière édition:

Baldu

XLDnaute Nouveau
@_Thierry
Oui j'avais bien vu mais sans le $ dans S, il commence avec +1 à chaque ligne recopiée... Je voudrais garder les même lignes en incrémentant les colonnes
Merci
 

_Thierry

XLDnaute Barbatruc
Alors c'est encore pire que mon Edit de 14H03, car là tu fais les choses à l'envers de ce que sait faire Excel quand on drague une formule...
Non là je ne vois que du VBA mais est-ce que ça passe sous Mac ?
@+Thierry
 

job75

XLDnaute Barbatruc
Bonjour Baldu, _Thierry,

Le VBA paraît indispensable, voyez le fichier joint et cette fonction VBA :
VB:
Function Joindre(vecteur1 As Range, vecteur2 As Range, sep As String) As String
Dim i As Long
For i = 1 To vecteur1.Count
    If vecteur2(i) <> "" Then Joindre = Joindre & sep & vecteur2(i) & " " & vecteur1(i)
Next
Joindre = Mid(Joindre, Len(sep) + 1)
End Function
Le code doit être placé impérativement dans un module standard.

Entrez cette formule en Visite!C2 et tirez-la vers le bas :
Code:
=Joindre(Inventaire[Matériel];DECALER(Inventaire[Matériel];;LIGNE()-1);"; ")
Il ne devrait pas y avoir de problème sur MAC.

A+
 
Ce message a été identifié comme étant une solution!

Fichiers joints

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas