Userform et code qui va avec

  • Initiateur de la discussion Ber Nar
  • Date de début
B

Ber Nar

Guest
Bonjour à tous !

J'ai créé un userform ('CoordonnéesTables') où l'utilisateur doit saisir dans 4 Textbox le numéro des premières et dernières colonnes des 2 tables.
Par exemple, si les tables se situent en A1:C15 et en E1:G15, il faut qu'il saisisse 1/3/5/7.

J'ai, à côté, créé une macro ('comparerTables') qui compare les 1ères colonnes des 2 tables et insère des lignes sur la largeur de ces tables quand les données comparées sont différentes... (l'utilisation du userform permettant de connaître la largeur de ces tables).

Mon problème c'est que :

1. je ne sais pas comment faire pour activer le userform,
2. je ne sais pas comment récupérer les 4 chiffres saisis et les utiliser dans la macro ('comparerTables') ?

Merci pour votre aide qui m'est précieuse.

Ber Nar.
 
R

renato

Guest
salut ber
pour le 1° il est plus simple de creer un bouton avec la barre outil
"formulaires" et de lui affecter la macro suivante :
sub x()
userform1.show (si la feuille userform s'appelle userform1)
end sub

quant aux 2° tu dois selectionner ta plage ou se situe tes chiffres a recuperer. creer une variable "variant "

- dim chiffres as variant


range("A1:A4").select
chiffres = selection.value
où chiffres(1,1) sera A1
chiffres(2,1) sera A2
bon courage
 
P

Patrick

Guest
Salut Ber,

Pour simplifier la vie à tes utilisateurs pourquoi ne pas automatiser la saisie des coordonnées de tes tables et les mettre dans des variables?

Supposons que ta première table commence en A1:

Dim V_T1_Start, V_T2_Start, V_T1_End, V_T2_Ens as Byte
Cells(1,1).select
If activecell = "" then
cells(1,1).end(xltoright).select
End if
V_T1_Start = Activecell.Column
Activecell.end(xltoright).select
V_T1_End = Activecell.column
Activecell.end(xltoright).select
V_T2_Start = Activecell.column
Activecell.end(xltoright).select
V_T2_End = Activecell.column
 
M

Mytå

Guest
Bonsoir le forum

Patrick juste un détail (je sais l'ai souvent dit et re-dit)

mais Dim V_T1_Start, V_T2_Start, V_T1_End, V_T2_Ens As Byte

vas juste donner V_T2_Ens As Byte

les autres vont rester Variant

Dim V_T1_Start As Byte, V_T2_Start As Byte, V_T1_End As Byte, V_T2_Ens As Byte

Serait mieux

Mytå
 

Discussions similaires

Réponses
3
Affichages
166

Statistiques des forums

Discussions
314 653
Messages
2 111 578
Membres
111 205
dernier inscrit
Adrien25