Rechercher : dans
Par :

[VBA] Prob variable dans fonction XL par VBA

Dernière réponse le 19 jui 2008 à 14:07:58 don lon, le 4 jui 2006 à 14:33:33 
 Signaler ce message aux modérateurs

Bonjour a tous,

alors voila mon probleme, j'ai effectue une grosse macro qui teste une plage de cellule a travers une autre afin de renvoyer des valeurs.

Comme les deux plages font 4000 lignes ca prend 1h30 a faire !!!!
j'ai donc change et dit a ma macro de copier une formule VLOOKUP dans les cases ou je souhaite obtenir mon resultat !! Ca prend donc 20sec mais le pb est que du coup je ne peux plus changer mon nom d'onglet Bdd:

Ma formule actuelle


bout7 = Range("a65536").End(xlUp).Row
For u = 2 To bout7

Range("b" & u).Select
ActiveCell.FormulaR1C1 = _
bout7 = Range("a65536").End(xlUp).Row
For u = 2 To bout7


Je souhaiterais qu'a la place de Bdd! on puisse mettre le nom de l'onglet en variable genre

onglet= sheet1.name

"=IF(ISERROR(VLOOKUP(RC[4],onglet! & "R1C1:R4749C11",8,0)),"""",VLOOKUP(RC[4],onglet!& "R1C1:R4749C11",8,0))"

mais ca ne marche pas !!!!

merci de votre aide

Meilleures réponses pour « [VBA] Prob variable dans fonction XL par VBA » dans :
Mise à jour d'une procèdure ou d'une fonction en VBA VoirMise à jour d'une procédure ou d'une fonction en VBA Souvent la gestion d'un classeur, avec seulement les fonctions standards du tableur, pose des problèmes d'utilisation. Vous songez donc à utiliser Visual Basic pour Applications (VBA) mais...
VBScript - Les fonctions et les procédures VoirLa notion de procédure On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel dans le corps du programme principal. Cette notion de sous-programme est généralement appelée fonction (ou procédure)...
Javascript - Les fonctions VoirLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Cette notion de sous-programme est généralement appelée fonction...
VBScript - Les fonctions de date et de temps VoirLes fonctions de date et de temps Fonction Description Date Retourne la date du système DateAdd(interval, number, date) Ajoute un intervalle de temps (interval) à une...

1

Armojax, le 4 jui 2006 à 15:10:18

Salut,

Avec un petit exemple, ça serait plus compréhensible.
Peux-tu mettre un échantillon ici :
http://cjoint.com/

Répondre à Armojax

2

lordorian, le 6 jui 2006 à 12:48:19

Je ne peux pas, le fichier est un fichier confidentiel...

en résumé je voudrais savoir comment définir une variable dans VBA lorsqu'on écrit une formule excel dans une cellule:

ex

comment dire d'ecrire dans la cellule A1 la formule suivante:

=sum('bdd!'A3:A4)
mais avec le nom de l'onglet bdd en variable pour que je puisse changer le nom de l'onglet par la suite

Quand je fait:

onglet= sheet2.name

je peux pas inserer onglet dans =sum(onglet & (!A3:A4))
il ne reconnait pas ca comme une variable

Répondre à lordorian

5

Kobaya, le 6 jui 2006 à 14:59:36

Hello,

il faut écrire :

Range("A1").Formula = "=Sum(onglet & "!A3:A4")

il s'agit de concaténer le nom de la feuille contenu dans la variable onglet avec la référence de cellules "!A3:A4", qui, si je ne me trompe pas, est ce qu'on appelle une constante littérale.

A+,
Kobaya.

Répondre à Kobaya

3

Armojax, le 6 jui 2006 à 14:37:07

Et au lieu de copier un RECHERCHEV (VLOOKUP) dans les cellules par VBA, tu peux exécuter directement le VLOOKUP dans VBA.
C'est plus simple, non ?

xx = Application.WorkSheetFunction.VlookUp(etc.)

Répondre à Armojax

4

lordorian, le 6 jui 2006 à 14:50:22

Euh est ce que tu peux m'en dire plus stp? car je ne savais pas du tt que l'on pouvait faire ca ??

quelle serait la commande pour mon exemple simple de sum ???

merci

Répondre à lordorian

6

Armojax, le 6 jui 2006 à 15:09:33

Un petit exemple :

Sub Total()
  Dim Somme As Double
  Dim Feuille As String
  Feuille = "Feuil1"  ' ou bien...   Feuille = ActiveSheet.Name  ou bien... etc.
  Somme = Application.WorksheetFunction.Sum(Sheets(Feuille).Range("A1:A5"))
End Sub

Répondre à Armojax

7

 HERBIN, le 19 jui 2008 à 14:07:58

Bonjour
je souhaiterai créer une facture sous excel vba, un userform avec une liste déroulante qui contiendra la référence du produit, en cliquant sur cette liste apparait la désignation et le prix unitaire et le total sur un textbox.
mon problème j'ai du mal à utiliser la fonction VLookup, ça ne marche pas :
voir code excel vba

réf= Produit combobox
désignation = libellé textbox
prix unitaire = Prix textbox
Quantité = Qte textbox saisir la quantité
Montant HT= Total textbox

Private Sub UserForm_Initialize()
Me("produit" & i).List = (Range([J2], [J2].End(xlDown))) ' ma base de données J2:L18
End Sub

Sub ChoixProduit()

Me("libellé") = Application.VLookup(Me("Produit"), [BDProduit], 2, False)
Me("Prix") = Application.VLookup(Me("Produit"), [BDProduit], 3, False)
Calcul
End Sub

Sub Calcul()
If Me("Prix") <> "" And Me("Qte") <> "" Then
Me("Total") = CDbl(Me("Prix")) * CDbl(Me("Qte"))
End If
End Sub
bien cordialement
herbin

Répondre à HERBIN