[resolue] [VBA] Question de débutant : Créer une boucle

oceanex

XLDnaute Nouveau
Bonjour à tous

j'ai une questions des plus débutante a vous demandez.
c'est un principe de base, que je ne comprends pas et a cause de ca je ne peux pas avancé. j'ai beau lire plein de tuto sa ne rentre pas :confused:.

j'ai une formule a inséré dans une cellule via le VBA

Range("O2").FormulaLocal = "=RECHERCHEV($k2;" & CheminComplet & ";2;FAUX)"

la formule dans la cellule O2 fonctionne parfaitement

mais je voudrais que la formule s'inséré et s'incrément (pour le $K2) de la cellule O2 jusqu'à O400
example O3 il recherche $K3, etc...
je ne peux pas utilisé l'option autofil parce que la variable chemincomplet change a chaque ligne.

sa me prend juste une petite boucle toute simple... mais sa ne marche pas !

Votre aide serait très apprécié pour aider une très débutante en VBA :rolleyes:
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : [VBA] Question de débutant : Créer une boucle

Bonsoir.
Essayez sans boucle comme ça, ça devrait marcher :
VB:
Range("O2:O400").FormulaLocal = "=RECHERCHEV($K2;" &  CheminComplet & ";2;FAUX)"
Mais je n'aime pas car on a l'impression qu'on met vraiment cette formule à toute les lignes alors qu'en fait les références relatives sont incrémentées. Ce problème n'existe pas en notation R1C1 car alors c'est vraiment la même formule partout.
Remarque: d'éventuelles références de lignes dans CheminComplet doivent être absolues (avec un $ devant)
 
Dernière édition:

oceanex

XLDnaute Nouveau
Re : [VBA] Question de débutant : Créer une boucle

Bonjour !
c'est trop simple et je comprend enfin... je me trouve un peu "poche" de ne pas avoir compris le principe d'un simple boucle for qui incrémente une valeur de cellule.

Je vous ai fait simple, mais je travail sur se problème depuis un bon moment.
Je fais une recherche en V avec la fonction indirect dans un autre classeur, je devais ouvrir se classeur a chaque fois. j'avais ajouté un petit ligne pour qu'il ouvre automatiquement, mais le fichier cible s'en vient vraiment volumineux et le classeur commencait a planté.

alors j'ai chercher et cherché sur comment faire pour permettre de faire une recherche en v avec une fonction indirect sur un classeur fermer et je suis tomber sur ce petit bout de code et sa marche #1 !


Code:
Sub test()
Dim CheminComplet As String, NomClasseur As String, Plage As String, NomFeuil As String, Chemin As String
 
Plage = "$A$1:$B$5" '<-- plage de recherche
NomFeuil = "Feuil1'!" '<-- nom de la feuille, ne pas oublier la simple cote avant le !
NomClasseur = Range("E1") & ".xls" '<-- nom du classeur contenu dans la cellule E1
Chemin = "'D:\Temp\" '<-- emplacement sur le disque dur, ne pas oublier la simple cote avant la lettre de la partition
 
CheminComplet = Chemin & "[" & NomClasseur & "]" & NomFeuil & Plage
 
Range("C1").FormulaLocal = "=RECHERCHEV(A1;" & CheminComplet & ";2;FAUX)"
 
End Sub

dans mon cas, la colonne E contient la feuille ou se trouve ma valeur, mais puisqu'a chaque ligne ma valeur e change je ne trouve pas de moyen avec autofil de le faire.

est ce qu'il y aurait un moyen plus rapide?

sa marche super bien avec le code de PierreJean en ajoutant Application.Calculation = xlCalculationManual en début et en le réactivant à la fin (merci encore)

Merci beaucoup pour votre aide :)
 
Dernière édition:

Discussions similaires

Réponses
5
Affichages
546