Parcours de ligne.

C

Cyril

Guest
Bonjour a tous,

c'est encore moi,

je suis en train de contourner mon probleme d'hier en essayant de connaitre les types d'objet qui sont presents dans ma cellule : en d'autre terme, j'aimerai traduire l'algo ci dessous :

si cellule->contient(comboBox) alors
traiter la cellule
fin si

Mais le probleme est que je n'arrive pas a trouver le test qui me permet de savoir si j'ai une combobox dans la cellule.

merci par avance.

Cyril
 
T

Thierry

Guest
Salut Cyril,

J'ai vu ton double post d'hier, ainsi que celui d'aujourd'hui...

Ce que je ne comprends pas (et problament pas mal de gens ici) c'est que tu parle de combobox dans des cellules ?

Un combobox est un control et n'a rien à voir avec une cellule... A moins que pour toi, il s'agisse du petit menu déroulant obtenu par "donnée/ validation/list"...

Par ailleurs il y a aussi deux sortes de ComboBox dans Excel...
1) Celle obtenue par la barre d'outil : "Form"
2) Celle obtenue par la barre d'outil : "ControToolBox"

la premiere, moins puissante et ancienne est en fait nommée "Drop Down"
la seconde, qui existe aussi pour les UserForm est réellement nommée "Combobox".

Dans les deux cas si tu veux copier ces Combobox en VBA tu dois utiliser l'objet "Shape" (voir l'aide en VBA où tu trouveras des exemples, ou bien enregistre une macro en selectionnant ta "combobox" en cliquant Avec le click de DROITE, la copiant et la collant ailleurs...)

Enfin si c'est bien de çà dont tu parles...

@+Thierry (Youpi c'est bientot le Week End !!)
 
C

Cyril

Guest
Salut thierry et merci pour ton explication,

alors, en fait, je parle bien de combobox de ControToolBox : je viens de reflechir un peu plus sur la question et je me suis rendu compte qu'elle n'etait pas fonde, dans le sens ou le contenu de combobox ne peut pas etre trimbale d'une feuille a ne autre, a cause des references... je reoriente donc ma question : comment puis(je faire pour savoir, lorsque je parcours ma ligne, si j'ai une combobox dedans (ensuite, je pense pouvoir en recuperer le contenu).
Le principe de mon fichier, c'est de recuperer un ensemble d'information concernant un probleme d'un utilisateur sur un certain logiciel et de m'envoyer la ligne correspondante a ce probleme par mail (ce n'est pas moi qui remplie la ligne). Je voudrais donc connaitre toutes les informations concernant la ligne en question, dont le cntenu des combobox des checkbox...

En ce momment, je trime comme un con a rechercher des soluces sur les forums pour savoir comment détecter que ma cellule contient soit une checkbox, soit une combobox...

Merci beaucoup,

Cyril ...
 
T

Thierry

Guest
Ouh là là, c'est bien compliqué et il est 18:00... Je regarderai çà ce week end....

Il y a un moyen je pense, regarde un peu sur le MPFE (par google) s'il il n'y a pas déjà de quoi référencer tes Combobox et Check Box...

Par contre dans la conception et l'usage de ton programme; quelque chose m'échappe encore...

Si j'ai bien compris ...
Si tes users ont un problème, ils remplissent un formulaire avec des combobox et des check box, et le résultat t'est expédié par mail ? c'est çà ?

Si c'est çà... donc là c'est simple... Si c'est pas çà explique un peu...

@+Thierry
 
C

Cyril

Guest
excuse thierry ... j'ai répondu directement via outlook (desole si tu le reçois deux fois).

et bien oui, c'est exactement ca, mais il faut que tu m'expliques si tu trouves ca vraiment simple (tout du moins pour verifier qu'on a bien une checkbox ou une combobox dans la cellule).

@+

Cyril
 
T

Thierry

Guest
Salut Cyril,

Tu m'as envoyé un fichier sur ma Bal ? là je suis au bureau je n'y ai pas accès je regarderai ce soir...

Si c'est "exactement çà" j'ai vraiment mieux à te proposer.... que de vérifier qu'on a des "checkbox" ou des Combobox" dans la cellule!!

Non la procédure c'est =>>> Ce sont ces controls (Checkbox/Combo/etc) qui vont fabriquer le mail et surtout rédiger son contenu !!

On en reparle....

Entretemps vous utilisez Outlook 2000 en messagerie ?

@+Thierry
 
C

Cyril

Guest
Salut thierry,

oui, ca m'interesse ............................

J'utilise bien outlook 2000.

Sinon, j'ai essaye une nouvelle formule : remplir des variables avec le contenu des combobox des que l'utilisateur change l avaleur, mais ca n'a pas l'air de fonctionner tres tres bien ... (tout du moins, j'ai un peu de mal).


Merci
@+

Cyril
 
T

Thierry

Guest
Bonsoir Cyril, et tout le monde

Bon j'ai commencé un truc... Mais je ne l'ai pas fini... Je me le finis chez moi et je le mettrai à disposition ici.

Disons que j'ai un peu galéré car moi je travaille plus en Userform Directement en VBA plutôt qu'avec des Controls (combo, checkbox etc) mis à même une worksheet...

Mais c'est interressant car cela est assez puissant sans presque faire de VBA ... Il en faut certe, mais ce sont des codes très simples à la porté de tous et toutes...

Je finis ce soir (j'espère)

@+Thierry
 
T

Thierry

Guest
Bonsoir Cyril, Bonsoir à Tous

Bon alors, j'ai finalement fini un truc "à la carte" pour toi Cyril, c'est une mini application complète qui regroupe toutes sortes d'exemples afin de te permettre de bien comprendre ce que l'on peut faire avec des Controls dans Excel.

Attention : ce n'est pas un exercice de style et les puristes diront que c'est très lourd.

C'est en fait une dissécation volontaire pour que tu ne t'oriente pas vers des Copiés / Collés de Cellules Contenant ou pas des Combobox... Car là tu étais parti assez loin de ce que peut faire Excel...

Donc dans l'application ci jointe, tu pourras mieux comprendre et analyser ce que j'ai fait.

Surtout utilises la "Boite à Outils Contrôles" et mets toi en "Mode Création" puis regarde les "Propriétés" de chacun des controls de la feuille Interface. Notamment "LinkedCell" et "ListFillRange" qui te montreront pourquoi et comment la feuille Collection se met toute seule à jour...

Enfin je reste à ta disposition pour toute info complémentaire.

NB :
===
==> La partie Email auto ne fonctionne qu'avec OUTLOOK,
==> NE PAS l'essayer si vous n'avez qu' Outllook Express.
(Pour Outlook Express il existe des macros plus simples)

Bon et ben c'est déjà Minuit et des bananes !

Bonne nuit à Tous et Toutes

@+Thierry
 

Pièces jointes

  • EmailReport.zip
    43.8 KB · Affichages: 44
C

Cyril

Guest
salut thierry et bonjour a tous,

Un grand merci pour le temps que tu a passé sur l'exemple que tu as poste hier et franchement, je dois dire que tu m'as scie... (je suis vraiment un newby avec excel et je ne pensais pas pouvoir faire ceci).
Il est vrai qu'avec les "boites de controle" c'est beaucoup miex, seulement, le truc c'est que je voulais faire quelquechose de generiqeu, car en fait la personne devant m'envoyer par mail les informations, ne le fait uniquement que pour les "lignes" urgentes : c'est a dire, que dans toute la feuille, il y a une centaine de lignes identiques (avec a la fin de chacune, un bouton "Enoyer") : le but est que la personne utilisant la fiche de renseignement, est a meme de resoudre certains probleme : donc elle n'a pas besoin de m'envoyer toutes les lignes a chaque fois : elle ne m'envoie que les informations concernant un probleme qu'elle ne peut pas resoudre.
Donc, j'ai pris des idees emanantes de ton fichier (lien entre le contenu d'une combobox et une autre cellule d'une autre feuille) et j'ai garde certains aspects de mon ancienne feuille : et c'est super, ca marche nickel. De plus, la fonction de verif est super bien foutue et celle d'envoie de mail est beaucoup plus complete que la mienne : pour tout ca, merci beaucoup, c'est super...

Alors, maintenant, le probleme, qui intervient avec toutes ces modifs, c'est de connaître le n° de la ligne du bouton sur lequel l'utilisateur vient de cliquer... et ca (excusez moi les gars), mais je n'y arrive pas du tout !!!! j'aimerais donc rendre la cellule, contenant le bouton sur lequel l'utiliateur a clique, active.... Please help and I won't disturb you anymore !!!!!!


Merci encore thierry pour toute ton aide et ton attention.

Cyril
 
T

Thierry

Guest
Bonjour Cyril, et le Forum

Donc si j'ai bien compris... (Souvent le plus gros problème n'est pas de faire faire à Excel des miracles.....C'est de comprendre ce que les gens veulent...)

J'imagine donc juste une feuille qui serait simplement une liste de 100 lignes avec 100 boutons "envoyer" à la fin de chacune ? (çà semble lourd ! autant pour le programme que pour le user !!

De plus le mot "identique" me trouble...

Bon je pense pas que 100 boutons soient la solution.... Et que mon fichier d'exemple "EmailReport" ne s'applique pas ici... Mais Un truc beaucoup PLUS simple...

Essaie plutôt :

##Colonne A .......................... / Colonne B
L1 Une de tes cent lignes........ / Tag avec "Donnée Validation"
L2 La Seconde ligne................. / Tag avec "Donnée Validation"
L3 La Troisèmene ligne............ / Tag avec "Donnée Validation"
Etc jusqu'à 100, ou 500 pas de problème


La colonne B est pré-formatée avec Menu / Données / Validation / Autoriser Liste => "X" (on ne peut pas saisir autre chose que "X" ou bien laisser vide)

Ensuite tu fais une macro du style auto filter qui va repaorter les lignes tagées en feuille "Collection" :

Sub Filter_Auto()
Dim i As Integer

Dim r As Range
Dim W1 As Worksheet
Dim W2 As Worksheet

Dim TagX As String
Dim tabT() As String

TagX = "X"

Set W1 = Worksheets("FeuilleAvec100Lignes")
Set W2 = Worksheets("Collection")

W2.Cells.ClearContents

W1.Range("A1").AutoFilter Field:=2, Criteria1:=TagX

Set r = W1.Range("A2", [A64536].End(xlUp))
Set r = r.SpecialCells(xlCellTypeVisible)

ReDim tabT(0 To r.Count - 1)

For Each Cell In r
tabT(i) = Cell.Value
W2.Cells(i + 1, 1) = tabT(i)
i = i + 1
Next

W1.Range("A1").AutoFilter Field:=2

Set W1 = Nothing
Set W2 = Nothing
Set r = Nothing
End Sub


Et donc toutes les Lignes Tagées avec "X" sont listée proprement en feuille collection...... Après tu colles une macro de mail de cette feuille et le tour est joué....

Ci joint un fichier test de cette macro, désolé je n'ai pas le temps de fignoler une appli démo....

Bon Appétit
@+Thierry
 

Pièces jointes

  • Mail100LigneFilter.xls
    31 KB · Affichages: 110
C

Cyril

Guest
Ouais, ca m'a l'air bien cool ca... et en plus ca ersoud tous mes problemes : le user peut recevoir des appels dont il sait resoudre le probleme et peut aussi m'envoyer par mail les problemes qu'il ne sait pas resoudre !!!

Merci Merci Merci thierry
Tous nos echanges ont ete plus que benefique pour ma part et je t'en remercie vraiment.

Je te souhaite bonne continuation et merci encore,

@ bientot sur ce forum.

Cyril
 
C

Cyril

Guest
ca marche po ...............

Bien, maintenant, que tout est nickel : la preocedure d'envoie de mail que j'avais deja essaye il y a de cela trois semaine, ne fonctionne pas sur mon poste : j'en ai marre !!!!!!!!!!!!!!! J'ai outlook et pourtant, il me dit que le type OutlookApplication il ne connait pas : j'ai essaye de redeclarer une variable de ce type et dans la liste des type possibles, il n'y a pas d'Outlook application, alors ma nouvelle question est : peut on contourner ce probleme.

merci

Cyril
 
T

Thierry

Guest
Juste par soucis de précision...

En voulant améliorer au dernier moment mon texte dans l'email auto du fichier EmailReport... pour le rendre plus convivial et inter-actif...
J'ai planté le control de la macro verification...

En effet on peut envoyer le mail en ayant choisi dans la combobox2 la possibilité : J'avais d'autres appli ouvertes" sans avoir coché au moins une de ces applis.... Grrr

Le Correctif :

Feuille : "Collection" Cellule "D9" changer la formule par :
=SI(B9="";0;SI(B9="J'avais le (les) application(s) suivante(s) ouvertes :";2;1))

Voilà... C'est tout con... Un rien peut planter tout un travail...
C'est pour çà Cyril que "J'en ai marre !!!!!" ne doit jamais prendre le dessus quand on essaie de développer...
D'ailleurs tu vois tu as trouvé toi même ton erreur 6 minutes après !!

:) heureux de t'avoir aidé

@+Thierry
 

Discussions similaires

Réponses
3
Affichages
274
Réponses
22
Affichages
990

Statistiques des forums

Discussions
311 720
Messages
2 081 897
Membres
101 833
dernier inscrit
sandra25