Excel VBA
Résolu
ivan34
Messages postés
2
Statut
Membre
-
gbinforme Messages postés 15481 Date d'inscription Statut Contributeur Dernière intervention -
gbinforme Messages postés 15481 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Comment puis je mettre cette fonction en code VBA
=INDEX(Feuil1!A:A;EQUIV(GAUCHE(B2;5);Feuil1!B:B;0))
Car j'ai 10000 lignes et 35 colonnes à traiter.
Par avance merci. Cordialement
Comment puis je mettre cette fonction en code VBA
=INDEX(Feuil1!A:A;EQUIV(GAUCHE(B2;5);Feuil1!B:B;0))
Car j'ai 10000 lignes et 35 colonnes à traiter.
Par avance merci. Cordialement
A voir également:
- Excel VBA
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Excel compter cellule couleur sans vba - Guide
- Déplacer colonne excel - Guide
4 réponses
bonjour
Comme je suppose que tu veux faire évoluer B2 tu peux mettre :
Tu remplaces le "C" par la colonne où tu mets ta formule.
Comme je suppose que tu veux faire évoluer B2 tu peux mettre :
Dim lig As Long
For lig = 2 To 10
Cells(lig, "C").FormulaLocal = "=INDEX(Feuil1!A:A;EQUIV(GAUCHE(B" & lig & ";5);Feuil1!B:B;0))"
Next lig
Tu remplaces le "C" par la colonne où tu mets ta formule.
bonjour
Dans ta formule :
=INDEX(Feuil1!A:A;EQUIV(GAUCHE(B2;5);Feuil1!B:B;0))
j'ai fait évoluer la ligne (2) que veux-tu faire évoluer :
- la colonne B ?
- Cells(lig, "C").FormulaLocal la colonne où se situe la formule ?
Dans ta formule :
=INDEX(Feuil1!A:A;EQUIV(GAUCHE(B2;5);Feuil1!B:B;0))
j'ai fait évoluer la ligne (2) que veux-tu faire évoluer :
- la colonne B ?
- Cells(lig, "C").FormulaLocal la colonne où se situe la formule ?
Bonjour,
En fait ce que je fais évoluer c'est
Cells(lig,"C").formulalocal
en fait j'ajoute mes 40 colonnes
Cells(lig,"D").formulalocal
Cells(lig,"E").formulalocal
Cells(lig,"F").formulalocal...
Mon souci c'était de savoir s'il y avait un moyen d'éviter cette répétition.
D'avoir comme une boucle à la place de "C"
du style
for lig =2 to 8000
for col = 3 to 40
Cells(lig,col).formulalocal="=INDEX(Feuil1!A:A;EQUIV(GAUCHE(B2;5);Feuil1!B:B;0))"
next col
next lig
Merci pour ton aide
ivan34
En fait ce que je fais évoluer c'est
Cells(lig,"C").formulalocal
en fait j'ajoute mes 40 colonnes
Cells(lig,"D").formulalocal
Cells(lig,"E").formulalocal
Cells(lig,"F").formulalocal...
Mon souci c'était de savoir s'il y avait un moyen d'éviter cette répétition.
D'avoir comme une boucle à la place de "C"
du style
for lig =2 to 8000
for col = 3 to 40
Cells(lig,col).formulalocal="=INDEX(Feuil1!A:A;EQUIV(GAUCHE(B2;5);Feuil1!B:B;0))"
next col
next lig
Merci pour ton aide
ivan34
bonjour
As-tu essayé comme ceci :
Comme tu n'as pas expliqué le but c'est difficile de trouver le code.
As-tu essayé comme ceci :
Dim lig As Long
Dim col As Long
For lig = 2 To 8000
For col = 3 To 40
Cells(lig, col).FormulaLocal = "=INDEX(Feuil1!A:A;EQUIV(GAUCHE(B" & lig & ";5);Feuil1!B:B;0))"
Next col
Next lig
Comme tu n'as pas expliqué le but c'est difficile de trouver le code.
Bonjour,
Oui j'ai essayé
En fait le but c'est de pouvoir utiliser cette fonction, ou peut être sous forme vba, afin d'avoir le même résultat.
Ce que je veux c'est pouvoir recopier cette fonction de la ligne C2 à la colonne AI8000, en tenant compte de ma variable qui se trouve en colonne B (en fait celle ci est bonne rien ne change).
Merci pour tes conseils.
ivan34
Oui j'ai essayé
En fait le but c'est de pouvoir utiliser cette fonction, ou peut être sous forme vba, afin d'avoir le même résultat.
Ce que je veux c'est pouvoir recopier cette fonction de la ligne C2 à la colonne AI8000, en tenant compte de ma variable qui se trouve en colonne B (en fait celle ci est bonne rien ne change).
Merci pour tes conseils.
ivan34
bonjour
mes colonnes C2 à AI8000 sont toutes différentes
Avec ce que tu met tu écrases ces colonnes et donc cela ne peut fonctionner.
Essaies de nous mettre un exemple de classeur sans données privées sur http://www.cijoint.fr/ pour que l'on comprenne le but recherché puis tu nous donnes ici le lien généré.
mes colonnes C2 à AI8000 sont toutes différentes
Avec ce que tu met tu écrases ces colonnes et donc cela ne peut fonctionner.
Essaies de nous mettre un exemple de classeur sans données privées sur http://www.cijoint.fr/ pour que l'on comprenne le but recherché puis tu nous donnes ici le lien généré.
Merci pour ta réponse si prompt gbinforme,
Oui effectivement cela fonctionne mais par contre je voudrais pouvoir avoir un code vba qui ressemble a cette fonction car j'ai 8000 lignes et 40 colonnes
Donc comment puis je faire, afin d'éviter d'écrire 40 lignes.
Par avance merci de ta réponse.
ivan34