Pb pour remplir un tableau.

T

Titeuf

Guest
Salut à vous tous,

je galère pour remplir un tableau…Voici les détails :

Dans une feuille XL, j’ai un tableau à 2 entrées, avec mettons de A à Z en colonne et de 1 à 10 en ligne.
Dans un Userform, j’ai 2 ListBox (pour les coordonnées) et 1 TextBox (pour taper du texte).


Je voudrais arriver à ce que si par exemple je sélectionne ‘A’ et ‘3’ dans les ListBox et que je tape ‘Zouzou’ dans la Textbox, mon tableau dans la feuille XL affiche Zouzou à l’intersection de A et de 3.

Des tests sur les lignes et colonnes doivent être fait pour identifier la bonne ligne et la bonne colonne, mais je n’ai pas trouvé de solution pour démarrer. :(
J’ai consulté le forum, mais sans succès non plus

Une âme charitable aurait-elle une piste pour m’orienter ?
 
@

@+Thierry

Guest
Bonsoir Minick, Titeuf, le Forum

C'est simpliste, mais c'est génial de simplicité Minick ;-)

Je pense que celà figure tout à fait ce que Titeuf à décrit, très bien.

Sinon juste deux ch'ti remarques pas grave.

Comme précisé dans la charte, tant que ce n'est pas indispensable, essaie de ne pas utiliser de macro auto à l'ouverture des classeurs.

Pour tes codes, si tu restes dans des valeurs entre 1 et 255, ton "i" peut être Byte. Pour la méthode d'ouverture du UserForm, la méthodeShow, déclenche tacitement le Load de ce dernier... (Vaut mieux !! lol)

Bonne Soirée
@+Thierry
 
M

Minick

Guest
bonsoir tlm,


ooops ooops ooops
j'vai me flageller avec des orties fraichement coupées

aïe ... aïe ... aïe ...

houla la ca pique :')

pourtant je l'ai lu la charte

ma dexieme sentence sera une relecture en long en large et en travers


pour le load c une habitude que j'ai pri apres avoir eu des pb en ne chargeant pas mon Userform avant le Show

Vala vala

Milles excuses pour mes erreurs

@+

Minick


PS: AÏÏÏÏÏÏEEEEEEEEEE Ca pique :eek:))
 
T

Titeuf

Guest
Bonjour Minick, Thierry et le forum,

merci pour cette solution efficace et simple.
J'ai juste une précision que je n'ai pas mentionnée clairement.
Les en-têtes de mes lignes et colonnes sont dans la colonne A et la ligne 1. J'ai mis un exemple dans le fichier joint.

Or avec le code actuel, ca ne marche pas. Je peux mettre les données de la ligne 1 et de la colonne A dans la ComboBox (via une définition de liste), mais après comment lui associer les coordonnées équivalentes ?

En attendant une réponse de votre part, je vais triturer le code de mon côté...


@+
 

Pièces jointes

  • titeuf.zip
    12.9 KB · Affichages: 36
  • titeuf.zip
    12.9 KB · Affichages: 33
  • titeuf.zip
    12.9 KB · Affichages: 33
T

Titeuf

Guest
Pas mal le coup du fichier ;-) J'ai failli faire la même chose à l'instant ! :-o

J'ai modifié le UserForm_Initialize pour obtenir dans les ComboBox les en-tête du tableau.
Mais là ca plante pour afficher au bon endroit. :-(
 

Pièces jointes

  • titeuf.zip
    12.6 KB · Affichages: 36
  • titeuf.zip
    12.6 KB · Affichages: 37
  • titeuf.zip
    12.6 KB · Affichages: 35
T

Titeuf

Guest
Waouw !

Total respect ! :) Merci beaucoup ! C'est parfait.


Pour que je devienne un peu moins novice, peux tu m'expliquer en 3 mots le code. Je ne comprends pas tout.

"ComboBox1.AddItem Range(Chr(i + 64) & "1").Value, i - 2"
-> C quoi le Chr (i+64) et pourquoi 64 ?

"Range(Chr(Me.ComboBox1.ListIndex + 66) & Me.ComboBox2.ListIndex + 2) = Me.TextBox1"
->Là, je comprends pas trop comment il retrouve ses petits...Le 66, c'est le 64 d'avant +2. Mais le Chr il fait quoi ?

Ha ces novices.... Faut tout leur expliquer :)
 
@

@+Thierry

Guest
Salut Titeuf, Minick, le Forum

Minick utilise la fonction "Chr" qui utilise les codes caractères ANSI

Par exemple Chr(10) renvoie un caractère de saut de ligne, Chr(9) un caractère de Tabulation... etc etc...

Les numéros 65 à 90 représentent les 26 caractères MAJ de l'alphabet... 97 à 122 les 26 caractères MIN.... Etc

L'excellente astuce de Minick dans l'exemple qu'il t'a fourni est de faire boucler sur ces codes de 65 à 90.... Pour avoir l'alphabet...

Ensuite ta question sur cette ligne :
"ComboBox1.AddItem Range(Chr(i + 64) & "1").Value, i - 2"

Voici une analyse détaillée en disséquant cette instruction :

=> "ComboBox1.AddItem"
La méthode AddItem ajoute un élément à la liste de la ComboBox1.

Range(Chr(i + 64) & "1").Value
En utilisant la fonction "Chr"décrite au dessus, Minick spécifie les "Lettres" de la Colonne sur la ligne 1 pendant la boucle sur "i"... et attribue dans la ComboBox la Valeur de la cellule ainsi retournée.

, i - 2
Dans la foulée Minick indique le numéro d'index spécifiant la position d'insertion que l'item ainsi ajouté va avoir dans la ComboBox.... C'est facultatif mais çà a pour avantage de réduire le temps de compilation et de pouvoir déclarer "i" as Byte (au lieu de d'une plus grande portée tel qu'Integer ou Long)

Pour conclure ne pense pas que nous connaissons par coeur tous les codes caractères pour Chr... Tu vas dans l'aide VBA et tu tapes "Jeu de caractères"... Tu auras soit Jeu de caractères (0 à 127) soit de (128 à 255)...

Voilà Bruno, je pense avoir été assez explicatif, même pour un novice !

Bonne Soirée
@+Thierry
 
@

@+Thierry

Guest
Re !

Sorry pour le Bold !!!

Tiens au fait ma démo du vendredi reprend en partie ce principe pour construire un tableau avec les lettres de l'alphabet...

=> Lien supprimé

Bonne Soirée / Week End
@+Thierry
 
M

Minick

Guest
Salut Titeuf, @+Thierry

Désolé de pas avoir repondu a tes interrogations Titeuf (un peu surbooké c't'aprem)

Mais je ne l'aurai pas fait aussi bien que @+Thierry :eek:)

Merci @+Thierry

Bonne Soirée et Week End voir Vacances


Minick
 

Discussions similaires

Statistiques des forums

Discussions
313 092
Messages
2 095 190
Membres
106 211
dernier inscrit
Céline 161918