Fonction excel : recherche dans une nomenclature

Yuyu33 - 10 avril 2024 à 17:19
 Yuyu33 - 11 avril 2024 à 09:22

Bonjour le forum,

J'ai un fichier excel avec des noms de produit. Ces produits ont des niveaux différents et sont organiser en arborescence (voir fichier joint).  https://www.cjoint.com/c/NDkpsHFwmcr

Je souhaiterai afficher par ligne les niveaux précédent. Par exemple sur la ligne 4 (SCREW H HEAD M8x20 qui est de lvl2) afficher dans la colonne I de cette même ligne le nom du Lvl 1 (I-SHIFT). 

Et cela ainsi de suite pour ce de lvl 3 afficher sur la même ligne le lvl 2 et lvl 1 correspondant. A noter que le niveau et lié au positionnement dans le tableau. 

J'espère que je suis assez clair, est-ce selon vous possible ? 

Merci :).


Windows / Edge 123.0.0.0

A voir également:

3 réponses

via55 Messages postés 14409 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 22 mai 2024 2 706
10 avril 2024 à 20:12

Bonsoir

Une possibilité par formules :

https://www.cjoint.com/c/NDkslnSejjQ

A mon sens ce serait mieux de présenter par étages comme j'ai fait sur la feuille 2

Cdlmnt

Via


1

Bonjour

Merci pour votre retour, c'est parfait, simple et logique :). 

Bonne journée

0
Bruno83200_6929 Messages postés 89 Date d'inscription jeudi 18 juin 2020 Statut Membre Dernière intervention 21 avril 2024 13
10 avril 2024 à 19:13

Bonjour,

Si je comprends bien, vous voulez copier le contenu de certaines colonnes de votre feuille, dans d'autres colonnes sur la même feuille en conservant le format des cellules. Si c'est bien cela, vous devez écrire un script dans l'éditeur VBA de EXCEL.

Voilà le script :

 Sub DeplacerColonnesAvecFormat()
    Dim ws As Worksheet
    Dim colonneSource As Range
    Dim colonneDestination As Range
    
    ' Spécifiez la feuille de calcul sur laquelle vous travaillez
    Set ws = ThisWorkbook.Sheets("Nom_de_votre_feuille")
    
    ' Spécifiez la plage de la colonne source que vous souhaitez déplacer
    Set colonneSource = ws.Range("A:A") ' Modifier "A:A" avec la plage de votre colonne source
    
    ' Spécifiez la plage de la colonne de destination où vous souhaitez déplacer les données
    Set colonneDestination = ws.Range("B:B") ' Modifier "B:B" avec la plage de votre colonne de destination
    
    ' Déplacer les données
    colonneSource.Copy
    colonneDestination.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    
  
End Sub

Assurez-vous de personnaliser le script selon vos besoins :

- Remplacez "Nom_de_votre_feuille" par le nom de votre feuille Excel.
- Modifiez les plages des colonnes source et de destination selon vos besoins. Par exemple, "A:A" représente la colonne A et "B:B" représente la colonne B.
- Vous pouvez copier-coller le code dans l'éditeur VBA d'Excel (Alt + F11 pour ouvrir l'éditeur VBA) et l'exécuter à partir de là.

Ce script copie les données de la colonne source vers la colonne de destination. Il conserve le format des cellules lors du déplacement. Vous pouvez adapter ce script pour traiter plusieurs colonnes simultanément en répétant le processus pour chaque paire de colonnes que vous souhaitez déplacer.

Après avoir enregistrer ce script, si vous le souhaitez, vous pouvez l'exécuter à partir d'un bouton depuis votre feuille de calcul.

J'espère que j'ai bien compris ce que vous vouliez faire. Sinon essayez de vous inspirer de ce script ou reposer votre question plus précisément.

J'espère pour voir vous aider avec cette réponse.

0
yclik Messages postés 3605 Date d'inscription vendredi 25 juillet 2014 Statut Membre Dernière intervention 17 mai 2024 1 483
Modifié le 10 avril 2024 à 20:08

bonsoir

Dans l'exemple il faudrait mettre dans la cellule de la ligne 4 et en dessous les résultats attendus

0