Programmation VBA - Problème
Résolu/Fermé
MarcancooL
Messages postés
34
Date d'inscription
lundi 8 décembre 2008
Statut
Membre
Dernière intervention
4 juin 2015
-
17 oct. 2012 à 22:52
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 18 oct. 2012 à 07:11
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 18 oct. 2012 à 07:11
A voir également:
- Programmation VBA - Problème
- Application de programmation - Guide
- Mkdir vba ✓ - Forum VB / VBA
- Excel compter cellule couleur sans vba - Guide
- Vba range avec variable ✓ - Forum VB / VBA
- Autofill vba ✓ - Forum Excel
2 réponses
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 249
18 oct. 2012 à 01:36
18 oct. 2012 à 01:36
Bonsoir,
Chez moi il dit plutôt variable non définie sur : Unité.
Si j'ai bien compris ça doit être une plage de feuille nommée Unite.
De plus tu ne peux pas appeler une fonction de feuille comme ça.
à tester :
Sans fichier difficile de tester...
eric
Chez moi il dit plutôt variable non définie sur : Unité.
Si j'ai bien compris ça doit être une plage de feuille nommée Unite.
De plus tu ne peux pas appeler une fonction de feuille comme ça.
à tester :
intConverti = WorksheetFunction.VLookup(strUnite, [Feuil2!Unite], 2, FAUX) * intConvertir
Sans fichier difficile de tester...
eric
MarcancooL
Messages postés
34
Date d'inscription
lundi 8 décembre 2008
Statut
Membre
Dernière intervention
4 juin 2015
18 oct. 2012 à 04:03
18 oct. 2012 à 04:03
Bon j'ai réglé 1 des problèmes, merci Eric! Maintenant, on me dit qu'il est impossible de lire la propriété VLookup de WorksheetFunction...
Voici le code maintenant:
Voici le code maintenant:
Sub Convertir_Bouton() Dim sngConvertir As Single Dim varUnite As Variant Dim sngConverti As Single Dim i As Integer i = 2 Do While (Worksheets(1).Cells(i, 1).Value <> "") If Not IsNumeric(Cells(i, 1).Value) Then Cells(i, 1).Value = "Vous n'avez pas saisi un chiffre!" Else sngConvertir = Cells(i, 1).Value varUnite = Application.WorksheetFunction.VLookup(varUnite, "F2:G15", 2, FAUX) sngConverti = varUnite * intConvertir End If i = i + 1 Loop End Sub
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 249
18 oct. 2012 à 07:11
18 oct. 2012 à 07:11
Re,
C'est un Range qu'il attend.
Donc soit [F2:G15] qui est la façon raccourcie de l'écrire, soit Range("F2:G15").
Mais de la feuille active puisque tu ne spécifies pas le nom du worksheet. Ce qui sera le cas si appelé par le bouton de la feuille.
Si on veut être puriste tu devrais mettre Private Sub Convertir_Bouton() que la procédure n'apparaisse pas dans la liste du menu macros du classeur, et ne puisse pas être exécutée d'une autre feuille.
eric
C'est un Range qu'il attend.
Donc soit [F2:G15] qui est la façon raccourcie de l'écrire, soit Range("F2:G15").
Mais de la feuille active puisque tu ne spécifies pas le nom du worksheet. Ce qui sera le cas si appelé par le bouton de la feuille.
Si on veut être puriste tu devrais mettre Private Sub Convertir_Bouton() que la procédure n'apparaisse pas dans la liste du menu macros du classeur, et ne puisse pas être exécutée d'une autre feuille.
eric