Adapter un menu déroulant à la saisie [VBA] - VB/VBA/VBS - Programmation
Marsh Posté le 20-07-2009 à 16:00:58
ça serait sympa de m'aider.
sinon j'ai un autre problème, je souhaite remplir un feuille d'un fichier avec la valeur des cellules d'une feuille d'un autre fichier (importer les valeurs, en somme)
voila ce que j'ai fait, ça ne marche pas, et je ne sais pas pourquoi
Citation : Private Sub ImporteFichier_Click() |
Marsh Posté le 20-07-2009 à 17:11:10
Bonjour
Pour la 1ere question ca revient a recalculer la source en fonction du texte saisi dans la Combo. Pas tres compliqué, mais pas forcement tres rapide en fonction de la source de données.
Ta source est definie comment ? Par code ? Avec une liste de Validation ? Avec les outils formulaire ?
Pour ta seconde question, tu mets DocumentOrigine comme une string, or ce n'est pas une string, mais une variable, donc pas de double cote. Si ton fichier se nommait DocumentOrigine, tu mettrais des doubles cote, la non.
Workbooks("DocumentOrigine" ) <(--- Fait reference au fichier se nommant DocumentOrigine
Workbooks(DocumentOrigine ) <(--- Fait reference à ta variable DocumentOrigine (Qui elle, peut contenir une string avec des noms differents de fichiers)
Et ta variable DocumentOrigine prend pour valeur une string qui est definie par le biais de la boite de dialogue generée avec GetOpenFilename.
Cordialement
Marsh Posté le 21-07-2009 à 11:26:18
merci pour ton aide, j'ai resolu la premiere question en bidouillant.
il me reste une 3e question :
je souhaite sélectionner les 50 premières cellules d'une ligne dont le numéro est une variable NumeroLigne
sauf que je sais pas faire de plage autrement qu'avec A1:Z1... et que dans le cas ou mon numéro de ligne est une variable, ça ne marche pas
Marsh Posté le 21-07-2009 à 11:33:34
Bonjour
Je pars du principe que ta variable numéro de de ligne se nomme NumLigne
Oui original je sais........
Tu fais un :
Range(Cells(NumeroLigne,1),Cells(NumeroLigne,50)).Select
Cells se compose comme ca : Cells(Numéro de ligne, Numéro de colonne)
A c'est la colonne 1, B la 2 etc.
Le range te permet donc d'inclure deux Cells pour selectionner une plage.
Penses peut etre aussi a indenter ton code, ca sera plus lisible, surtout quand tu as des boucles imbriquées.
Marsh Posté le 21-07-2009 à 12:18:25
merci 1000 fois
Marsh Posté le 21-07-2009 à 13:00:50
sinon, je cherche a executer du code quand on intervient dans une colonne ( pr exemple, la colonne 3 ne doit recevoir comme données que des valeurs de type ( x chiffres + "," + y chiffres) en gros un nombre a virgule, qui peut etre 121,2 ou 1,18 par exemple
a la rigueur, les vérification je peux trouver, mais l'exécution de code lorsqu'on modifie une case...
édit, j'ai trouvé :
Private Sub Worksheet_change(ByVal Target As Range)
MsgBox "bawui"
mais quand je modifie les cells de ma sheet... j'ai JAMAIS la msgbox.
en fait je dois pas savoir faire fonctionner worksheet_change !
Marsh Posté le 21-07-2009 à 14:10:52
C'est surement parceque ton code est par exemple sur la Feuil1 et que tu modifies ta cellule sur la feuille2.
Le mieux (plus simple) c'est de passer ce code dans l'objet ThisWorkbook si tu veux verifier TOUTES les colonnes 3 de TOUTES tes feuilles.
Sinon tu peux tester sur le nom (ou l'index) de la feuille.
Je te mets deux exemples.
Dans ThisWorkbook :
Code :
|
Dans ThisWorkbook :
Code :
|
Sur l'objet Feuil1 :
Code :
|
Marsh Posté le 21-07-2009 à 14:14:23
-_- you're so right
j'avais casé ça dans un module, desormais je l'ai mis dans la feuille en question et ça passe neeettement mieux.
merci pour ton aide précieuse, ça donne envie d'aider les prochains qui auront des questions auquelles je sais répondre.
Marsh Posté le 21-07-2009 à 14:15:32
J'ai édité mon post precedent, mais tu dois avoir le principal
C'est le but du (d'un) forum hein
Marsh Posté le 20-07-2009 à 09:17:13
bonjour,
actuellement j'utilise des menus déroulants dans une feuille Excel, sans code VBA.
je souhaiterai que la liste s'adapte au début de la saisie. je ne sais pas si je peux réussir cela sans passer par du VBA ?
exemple :
la liste contient :
BW
SW
Bx
Sx
si l'utilisateur clique sur la case, tout s'affiche, mais si'l frappe la touche B, alors la liste ne lui propose plus que "BW" ou "Bx"
est ce possible ?
avec ou sans VBA ?