ComboxBox : Fusion de deux fichiers

TgR

XLDnaute Junior
Bonjour à tous,

Je débute en VBA et j'ai quelques notions, cependant je ne possède pas niveau suffisamment bon pour effectuer les manipulations que je souhaite.

J'ai trouvé sur ce forum 2 fichiers très intéressants que je joins à ce message (le 2nd a été modifié avec les données dont je me servirai plus tard). Je vais dans un premier temps exposer ce que je souhaite faire :

je souhaite établir une feuille de saisie qui servira à répertorier chaque incident survenu au sein de notre établissement (ampoule cassée, imprimante en panne, soucoupe volante dans le jardin, peu importe). J'ai donc pensé à créer un fichier excel que je mettrai à disposition au sein de la structure et que chacun remplirait lorsqu'il remarquerait une anomalie. Toutes ces données seraient ensuite envoyées dans un tableau croisé dynamique afin de constater rapidement quelles sont les anomalies les plus récurrentes.

Afin de ne pas fausser le tableau croisé je me suis dis qu'il fallait limiter au maximum la saisie manuelle et donc qu'il fallait que je propose des listes. J'ai donc commencé par créer une userform en y ajoutant des comboBox et j'ai écris un code absolument horrible pour les alimenter.

Je décide donc de faire quelques recherches sur internet quand soudain je tombe sur ces 2 magnifiques fichiers (merci aux auteurs au passage). Je décide dans un premier temps de me débrouiller avec et de comprendre ces codes afin de les modifier tout seul. Vous pensez bien que si je vous écris aujourd'hui c'est que je n'ai tout saisi.

Ce que j'aimerais faire de ces 2 tableaux:

Ce qui m'intéresse dans le premier fichier ce sont les ComboBox liées les unes aux autres et dans le second la présentation. Je souhaiterai faire de ces 2 fichiers excel un seul. J'imagine que le code entier est à réécrire ? Pas moyen de se servir de l'un pour alimenter l'autre ?

J'ai bien conscience qu'il s'agit là d'une tâche titanesque (de mon point de vue en tout cas), mais lorsque j'ai proposé de faire ce fichier, je ne me suis pas vraiment rendu compte des difficultés auxquelles je ferai face.

Un grand merci à ceux qui m'aideront et je réfléchirai à deux fois avant de proposer quelque chose la prochaine fois.

En espérant avoir été clair,

Bien cordialement

TgR
ps: dans l'idée il me faudrait 6 comboBox (Lieu, Bâtiment, Etage, endroit dans le bâtiment, précision de l'endroit, anomalie constatée)
 

Pièces jointes

  • pièce.xls
    162.5 KB · Affichages: 41
  • pièce.xls
    162.5 KB · Affichages: 41
  • pièce.xls
    162.5 KB · Affichages: 40
  • Copie de CbxCascVéhicul - modifié.xls
    271.5 KB · Affichages: 34
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : ComboxBox : Fusion de deux fichiers

Rebonjour. (bonjour déjà dans un MP)
Je n'ai ouvert que le Copie de…
Redessinez votre Userform1 conformément à votre illustration dans la feuille paramètres, avec une ListBox à pusieurs colonnes.
À partir du moment ou Casc est déclaré WithEvents, vous l'avez dans la liste des objets disponibles qui surmonte la fenêtre de code. Vous le sélectionnez: il vous implante un modèle de procédure pour gérer son évènement Bingo.
C'est évènement survient quand un des Combobox change et qu'alors tous ont des valeurs existantes et compatibles.
La liste du ou des numéros de lignes concernée(s) vous y est passée dans un paramètre Lignes. Il s'agit des numéros de lignes relatifs au début de la plage passée à la méthode Casc.Plage. Dans les dernières version de ComboBoxCasc j'y ai mis la variable PlgTablo As Range dans une déclaration séparée en Public pour qu'on puisse s'en resservir simplement dans l'userform.
Essayez déjà d'avancer un peu avec ces informations. Je profiterai d'un classeur joint ultérieurement, avec vos apports pour approbation, pour l'équiper des dernières versions des modules de service.
À +
 

TgR

XLDnaute Junior
Re : ComboxBox : Fusion de deux fichiers

Bonjour, bonjour

J'ai pu avancer avec ma userform en ajoutant mes 5 comboBox. Je les ai mis de telles manière que les anomalies soient présentés dans la ListBox.

Me voilà confronté à un nouveau problème. J'aimerais copier le contenu sélectionné dans les ComboBox ainsi que dans la listBox sur une feuille différente (la fameuse feuille récapitulative). La seule chose que j'ai trouvé c'est :

Range("X") = ComboBox 1

Ca marche très bien sauf qu'à chaque nouvelle fiche, l'information sera écrasée. J'ai bien tenté un

Domaine.Copy
Sheets("Recap").Select
Range("A65536").End(xlUp).Offset(1, 0).Select
Domaine.Paste
Sheets("Accueil").Select

Echec !


Autre question:

Je me demande si je ne vais pas être très vite à court de ligne. Mes anomalies se trouvent en ligne F. Et pour chaque anomalie répertorié dans un lieu, je dois recopier dans les colonnes précédente le même contenu, de cette manière.

Hauterive Bâtiment B Sous-sol Salle de kiné Anomalie 1
Hauterive Bâtiment B Sous-sol Salle de kiné Anomalie 2

Ainsi, ma listbox affichera toutes les anomalies répertoriées dans la salle de kiné.

Sauf que j'ai 3 étages et plusieurs pièces par étages, du coup si je trouve 100 anomalies par pièces...

N'y a t-il pas un moyen de créer un répertoire à anomalie et l'affecter aux pièces afin d'économiser de la place ?


Merci pour l'aide !

ps: Special thx to Dranreb ;)
 

Pièces jointes

  • Exemple - Fiche d'intervention interne.xls
    213.5 KB · Affichages: 70

TgR

XLDnaute Junior
Re : ComboxBox : Fusion de deux fichiers

Problème "résolu". J'ai entré ce code :

Private Sub CommandButton2_Click()
Sheets("Recap").Select
Range("A65536").End(xlUp).Offset(1, 0).Select
Range("A65536").End(xlUp).Offset(1, 0) = Domaine
Range("B65536").End(xlUp).Offset(1, 0).Select
Range("B65536").End(xlUp).Offset(1, 0) = Batiment
Range("C65536").End(xlUp).Offset(1, 0).Select
Range("C65536").End(xlUp).Offset(1, 0) = Etage
Range("D65536").End(xlUp).Offset(1, 0).Select
Range("D65536").End(xlUp).Offset(1, 0) = Lieu
Range("E65536").End(xlUp).Offset(1, 0).Select
Range("E65536").End(xlUp).Offset(1, 0) = LieuBis

Range("F65536").End(xlUp).Offset(1, 0).Select
Range("F65536").End(xlUp).Offset(1, 0) = ListBox1

Sheets("Accueil").Select
End Sub

j'imagine qu'un meilleur code doit certainement exister mais bon.. il fait l'affaire pour le moment !

Ne reste plus que mon problème de lignes !
 

Dranreb

XLDnaute Barbatruc
Re : ComboxBox : Fusion de deux fichiers

Bonjour.
Effectivement, écrivez un code à la hauteur du reste !
VB:
Private Sub CommandButton2_Click()
Feuil2.[A:F].Rows(Feuil2.[A65536].End(xlUp).Row + 1).Value _
   = Array(Domaine, Batiment, Etage, Lieu, LieuBis, ListBox1.Value)
End Sub
Ou pour rester dans l'esprit de ce qui est écrit (remarque: le résultat est différent):
VB:
Private Sub CommandButton2_Click()
Feuil2.[A:F].Rows(Feuil2.[A65536].End(xlUp).Row + 1).Value _
   = Casc.PlgTablo.Rows(LCou).Value
End Sub
P.S.:
N'y a t-il pas un moyen de créer un répertoire à anomalie et l'affecter aux pièces afin d'économiser de la place ?
Effectivement !
Je ne sais pas si ça gagnerait de la place, mais pour moi une anomalie réelle en un certain lieu est de toute façon l'association d'une anomalie possible à un lieu existant.

À +
 
Dernière édition:

TgR

XLDnaute Junior
Re : ComboxBox : Fusion de deux fichiers

Bonjour,

Mes plus plates excuses pour ce vilain code Seigneur Dranreb ! ;)

J'aimerais savoir une chose sur ton fichier, comment gérer les emplacements d'affichage de la listbox ? Je m'explique :


Actuellement je sais comment faire pour changer les valeurs qui apparaîtront dans la ListBoX (youhou !). Seulement je n'arrive pas à gérer l'emplacement des données qui iront et je suis par conséquent obligé de redimensionner la listbox. Et même lorsque je la redimensionne, mes dernières données sont effacées à la moitié...

Je cherche, je cherche....

Merci !
 

Dranreb

XLDnaute Barbatruc
Re : ComboxBox : Fusion de deux fichiers

Bonjour.
Je ne comprends pas ce que vous voulez dire. Une ListBox peut contenir plus de lignes qu'elle ne peut en afficher: un ascenseur apparait alors pour se balader dedans.
Mais, bon. De toute façon je n'ai sans doute pas bien compris à quoi sert cette ListBox.
P.S. Remarque: il se peut que lors d'un AddItem dans la ListBox, s'il lui est spécifié une expression de plus de 255 caractères elle soit tronquée.
À +
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 913
Messages
2 093 535
Membres
105 752
dernier inscrit
fred13340