Entrée de code avec une ListView et placement sur la feuille suivant le code entré

Chrige

XLDnaute Occasionnel
Bonjour le Forum

Je me sers d’une ListView pour insérer des codes dans mon tableau
En fin de macro je dois me trouver en colonne G dans 90% des cas.
Sauf en fonction de 3 catégories de codes dont la 1ère lettre est
Un "D", "F" ou un "M"
Exemple MU55, Duci, FLA9
Où là je dois me trouver en colonne I.

Je pense qu’il suffit donc de faire un test sur la 1ère de lettre du code sélectionné
Mais je ne vois pas comment faire puisque on lancement de la procédure le code n’est évidement pas encore présent sur le tableau.

Un petit coup de main ne serait pas de refus
Merci
A+
 

Pièces jointes

  • ListView avec placement suivant code.xlsm
    32.1 KB · Affichages: 43

Si...

XLDnaute Barbatruc
Re : Entrée de code avec une ListView et placement sur la feuille suivant le code ent

salut

avec 2 nouvelles variables (et non macros)
Code:
Private Sub Lv_ItemClick(ByVal li As MSComctlLib.ListItem)
  Dim T$, Col As Byte
  T = Left(li, 1)
  Col = IIf(T = "D" Or T = "F" Or T = "M", 5, 3)
  ActiveCell.Resize(1, 5) = ""
  ActiveCell.Resize(1, 5).Interior.ColorIndex = xlNone
  If li = "" Then Unload Me: Exit Sub
  ActiveCell.Resize(1, 2).Interior.Color = Lv.ListItems(li.Index).ForeColor
  ActiveCell = li
  ActiveCell.Interior.Color = Lv.ListItems(li.Index).ForeColor
  ActiveCell(1, Col) = Lv.ListItems(li.Index).ListSubItems(2)
  ActiveCell(1, 3).Select
  Unload Me
End Sub

voir fichier joint
 

Pièces jointes

  • Colonne ListView.xlsm
    27.3 KB · Affichages: 47
  • Colonne ListView.xlsm
    27.3 KB · Affichages: 60
  • Colonne ListView.xlsm
    27.3 KB · Affichages: 58

Chrige

XLDnaute Occasionnel
Re : Entrée de code avec une ListView et placement sur la feuille suivant le code ent

Bonjour Si

Je te remercie pour cette solution.

- Je vois que tu m’as simplifié le code que j’avais rajouté et je t’en remercie
Mais peux-tu m’expliquer comment tu fais pour paramétrer les largeurs des colonnes ?
Je ne vois rien qui traite de ces largeurs dans ton code ???

- Je vois aussi que tu as simplifié le code pour le Tri tout en conservant le tri pour les 3 colonnes
A ce sujet peux tu me dire à quoi correspondent la série de chiffre « 0, 1, 0 », je ne suis jamais parvenu à comprendre ??
Je vois que les nombres de la 3ème colonne comme pour moi ne se trient pas dans l’ordre.

- Pour les tests, c’est exactement ce que je souhaitais, je vais essayer de comprendre le principe
Mais il reste cependant une chose d’important qui n’est pas encore en place, c’est le placement à la fin de la macro.
Soit en colonne G, soit en colonne I.
C’est très important, parce que tous les nombres ne sont pas dans la ListView et il faut donc les rentrer manuellement dans la bonne colonne lors de la saisie dans le tableau.

A+
 

Si...

XLDnaute Barbatruc
Re : Entrée de code avec une ListView et placement sur la feuille suivant le code ent

re

1- Pour un tel contrôle, je passe par la gestion de propriétés (voir image)

ListView.jpg

2- Lv.SortOrder = IIf(Lv.SortOrder = 0, 1, 0) : 0 pour un ordre croissant et 1 pour l’ordre décroissant

3- Pour se retrouver au bon endroit en G ou I: ActiveCell(1, Col).Select

4- Pour le tri de la colonne 3 (je n’avais pas regardé), ce n’est simple dans la mesure où les nombres viennent de 2 colonnes. Je regarderai quand je disposerai de plus de temps. Pour l’éviter momentanément, dans le clic sur titre : If ColumnHeader = "" Then Exit Sub
 

Pièces jointes

  • ListView.jpg
    ListView.jpg
    112.1 KB · Affichages: 45
  • ListView.jpg
    ListView.jpg
    112.1 KB · Affichages: 44

Chrige

XLDnaute Occasionnel
Re : Entrée de code avec une ListView et placement sur la feuille suivant le code ent

Re,

Pour un tel contrôle, je passe par la gestion de propriétés (voir image)

Ok, Pour moi, ce n'est malheureusement pas possible, je n'ai malheureusement pas accès à cette propriété !

Pour se retrouver au bon endroit en G ou I: ActiveCell(1, Col).Select
Mais oui bien sûr, suis-je bête !!

4- Pour le tri de la colonne 3 (je n’avais pas regardé), ce n’est simple dans la mesure où les nombres viennent de 2 colonnes
Ils vont dans 2 colonnes, mais il viennent que d'une seule colonne ??

A+
 

Chrige

XLDnaute Occasionnel
Re : Entrée de code avec une ListView et placement sur la feuille suivant le code ent

Bonjour le Forum

Si, je rencontre un problème avec ton code
Dans la colonne F, j'ai une formule
Et là contrairement à avant, cette formule est écrasée

NB; je souhaite bien par contre que cette colonne F prenne la même couleur que la colonne E

Cela fait un moment que je cherche
Mais je ne vois vraiment pas ou se trouve la solution
Si tu as peu de temps

Merci d'avance, car je suis bloqué
A+
 

Chrige

XLDnaute Occasionnel
Re : Entrée de code avec une ListView et placement sur la feuille suivant le code ent

Bonjour

Je suis toujours à la recherche d'une correction pour terminer ma macro
Elle fonctionne très bien sauf que j'ai l'écrasement des formules qui se trouvent dans la colonne F
Ce que je ne souhaite pas.
Je souhaite bien en revanche qu'elle continue de prendre la couleur de la ListView.

Comme j'ai bon essayé et que je ne trouve comment faire cette correction
Un petit coup de main ne serait pas de refus

Merci
A+
 

Chrige

XLDnaute Occasionnel
Re : Entrée de code avec une ListView et placement sur la feuille suivant le code ent

Bonsoir

Je te renvoie ton fichier avec les formules qui sont donc dans toute la colonne F et qu'il ne faut donc pas écraser

Je n'avais pas mis ces formules, car ma macro d'origine ne les écrasait pas
Elle ne faisait que prendre la couleur du code.

Ta macro répond bien à ma demande concernant le test sur les codes
Elle continue aussi de recopier la couleur du code dans cette colonne F
Mais elle écrase les formules qui si trouvent.

Excuse moi si je n'ai pas mis ces formules dans mon exemple
Mais vu que ma macro ne les effaçait pas, je n'avais pas penser que cela soit utile.
Ces formules ne sont pas opérationnelles dans ce fichier exemple, car toutes les feuilles ne sont pas présentes

Merci
A+
 

Pièces jointes

  • Colonne ListView.xlsm
    25.8 KB · Affichages: 44
  • Colonne ListView.xlsm
    25.8 KB · Affichages: 59
  • Colonne ListView.xlsm
    25.8 KB · Affichages: 57

Si...

XLDnaute Barbatruc
Re : Entrée de code avec une ListView et placement sur la feuille suivant le code ent

salut

remplace ActiveCell.Resize(1, 5) = "" (censée vider 5 cellules consécutives) par ActiveCell = "": ActiveCell(1, 3) = "": ActiveCell(1, 5) = "" (censée vider 3 cellules dispersées)
 

Chrige

XLDnaute Occasionnel
Re : Entrée de code avec une ListView et placement sur la feuille suivant le code ent

Bonsoir Si

Merci pour cette correction

J'avais bien été voir du côté de ce ".Resize", mais je n'avais pas bien compris son fonctionnement

Si je comprends bien : "ActiveCell.Resize(1, 5)" il faut comprendre de la colonne 1 à la colonne 5 ?
par rapport à "ActiveCell(1, 5)" Qui veut dire uniquement la colonne 5

A+
 

Si...

XLDnaute Barbatruc
Re : Entrée de code avec une ListView et placement sur la feuille suivant le code ent

salut

c'est bien cela. De façon plus générale

ActiveCell.Resize(x,y) correspond au la plage dont la première cellule est celle qui est sélectionnée et de x lignes sur y colonnes.

ActiveCell(x,y) correspond à 1 cellule, x désignant le numéro de ligne (1 pour l'actuelle) y celui de la colonne (1 pour l'actuelle). Ici x et y peuvent être négatifs (décalage vers la gauche , vers le haut plutôt que vers la droite et le bas)
 

Chrige

XLDnaute Occasionnel
Re : Entrée de code avec une ListView et placement sur la feuille suivant le code ent

Bonjour Si, Bonjour le Forum

Merci pour ces précisions
Elle me sont très importantes pour moi et me permettent de progresser en VBA

Bonne journée
A+
 

Discussions similaires

Statistiques des forums

Discussions
312 231
Messages
2 086 447
Membres
103 213
dernier inscrit
Poupoule