macro varation d'un champ en fonction d'une liste + loop

  • Initiateur de la discussion Xavier
  • Date de début
X

Xavier

Guest
Bonjour à tous,

J'espère que l'un d'entre vous pourra m'aider, car je suis toujours une truffe pour faire des macros.

Voici ma question :
Je cherche à faire varier la valeur d'une cellule (I4) en fonction des valeurs d'une liste du fichier "N frs.xls".
Je souhaiterais avoir une macro qui me mette à jour la cellule (I4), puis me sauvegarde le fichier, puis recommence l'opération jusqu'à la fin de la liste "N frs".
Sachant que je ne sais pas déterminer la longueur de cette liste.

Voici d'autres précisions:
Fichier dans lequel se lancera la macro = analyse v16.XLT
Cellule dont la valeur va varier = I4 de la feuille "analyse"
Le premier code à utiliser se trouve dans [Nfrs]Feuil1!$A$5

Je positionne dans la feuille "code frs", du classeur analyse v16.xlt, le chemin ou se trouve la cellule.
Dans le code, LCF renvoie à la feuille "code frs" à la cellule D9 qui doit indiquer la première cellule.
Q: comment indiquer de façon correcte cette cellule? Est-ce "C:\Mes documents\N frs.xls\ Feuil1!A5" ?


Sub import ()

Dim LCF As String
With Sheets("Code frs")
LCF = .Range("D9")
End With
Range("I4").Select
ActiveCell.FormulaR1C1 = LCF

Ensuite je lance cette macro

Sub Macro2()
Dim NomFic As String
Dim strPath As String
Dim Nom As String
Application.DisplayAlerts = False
With Sheets("Code frs")
NomFic = .Range("D7")
strPath = .Range("D8")
End With
Nom = strPath & "\" & NomFic
ActiveWorkbook.SaveAs Filename:=Nom, WriteResPassword:="Toto"
Application.DisplayAlerts = True
End Sub

L'idée ici est de recommencer la macro (loop?) avec la cellule A5 + 1 = soit A6 jusqu'à la fin de la liste.

Et là je ne sais pas comment faire.
Je suppose que cela doit ressembler à quelque chose comme ça, du moins dans l'esprit: Loop If Ax = A5 +1, where x = A5+1 goto début de la macro

Est-ce qu'un bon géni de la macro pourrait m'aider ? Encore une fois...
Ce serait l'extase!


Merci d'avance à tous.

Xav
 
R

Roland

Guest
Salut Xavier

Pour faire une boucle tu as plusieurs possibilités.
Soit entrer dans la boucle et mettre la condition en fin de boucle
Do
Code à executer
Loop while Condition pour reéxecuter la boucle

Do
code à executer
Loop until Condition pour reéxecuter la boucle


Soit mettre la condition en début de boucle.

Do while Condition pour reéxecuter la boucle
code à executer
Loop

Do until Condition pour reéxecuter la boucle
code à executer
Loop

Si tu utilise While on boucle tant que la condition est vraie

Si tu utilise Until on boucle jusqu'à ce que la condition soit vraie

Pour décaller d'une cellule activecell.offset(nligne,ncolonne)
nligne étant le nb de lignes, ncolonne le nb de colonnes

pour trouver le nombre de cellules dans une liste
toto=range("cellule départ").end(xldown).row

A++
 

Discussions similaires

Réponses
4
Affichages
491

Membres actuellement en ligne

Statistiques des forums

Discussions
311 725
Messages
2 081 941
Membres
101 846
dernier inscrit
Silhabib