Valeur Cible Boucle VBA
BOUCLE VALEUR CIBLE EN VBA,
Bonjour, alors j'ai vu pleins de sujets dessus mais je pense trop compliqué pour ce que je demande, je souhaite répéter ma valeur cible sur mes lignes du dessous
Cellule à définir: Ma somme de %
Valeur à atteindre: 100%
Cellule à définir: Le taux du mois octobre à modifier pour attendre un lissage annuel de 100% en fin d'année.
Objectif de ma demande: Répéter l'opération de la valeur cible sur les lignes du dessous
Je vous remercie par avance à tous pour votre aide,
Stéphanie
Voici ma macro enregistrée en auto:
Sub buj()
'
' buj Macro
'
Range("BM16").Select
Range("BP16").GoalSeek Goal:=1, ChangingCell:=Range("BM16")
End Sub
J'ai un semblant de réponse mais celà ne marche pas:
Sub CIBLE()
'
' VALEUR Macro
' BP16 cellule contenant la formule (somme des mois de l'année en %)
' 100% est la valeur que la formule doit atteindre = LA CIBLE
' BM16 cellule contenant la variable à modifier (Taux du mois octobre)
With Sheets("Projection_QTE_2021 %")
Range("BP16" & ligne).GoalSeek Goal:=1, ChangingCell:=Range("BM16" & ligne)
End With
Range("BM16").Select
End Sub
Bonjour Fanny2028
Alors pour commencer, un petit tour ici https://www.excel-pratique.com/fr/vba/boucles
Ensuite on ne peut pas écrire
Range("BP16" & ligne)Mais
Range("BP" & ligne)@+
Bonjour Bruno,
Merci pour ton retour je viens de regarder et il me semble que je dois utiliser la boucle avec for si j'ai bien compris les explications du forum:
Je sélectionne mon onglet dans mon fichier puis mes 3 colonnes de travail (BM16 jusqu'à BQ200)
dl ==> va descendre mes lignes au fur et à mesure du calcul de la valeur cible
For i = 16 (commence à la 16ième ligne de ma colonne BM) to dl (jusqu'à BQ200 comme définit plus haut)
après j'ai trouvé une formule .cells(i,3).goalseek goal:=1, changingcell:=.cells(i,2) ==> alors là je ne comprends plus rien que singnifie le i et le 3/ idem pour i et 2??
mois je souhaite que ça soit xldown (qu'il répète jusqu'à la dernière ligne)
merci pour votre aide, désolée meme avec lecture du forum je n'y arrive pas
Re,
Je vous invite à lire la charte du forum [A LIRE AVANT DE POSTER] qui vous aidera dans vos demandes et réponses sur ce forum.
Et notamment :
- Joignez (si possible) un fichier pour augmenter vos chances d'obtenir de l'aide en cliquant sur le bouton Fichier de l'éditeur. Si votre fichier est trop lourd ou contient des données personnelles, créez une version allégée de votre fichier avec juste assez d'informations pour permettre de comprendre votre problème. Dans tous les cas, ne postez JAMAIS de fichiers avec des informations personnelles ou confidentielles (cet utilitaire peut vous aider à les retirer).
A+
Vous trouverez ci-joint le fichier allégé avec les infos, je pense qu'il s'agit d'une boucle avec for
Re,
Il s'agit bien d'utiliser une boucle For... Next, mais pourquoi vouloir utiliser le solveur, pour un simple calcul sur une cellule
Voici les 2 codes possible
Sub Ajustement_vSolveur()
Dim dLig As Long, Lig As Long
With Sheets("Projection_QTE_2021")
' Dernière ligne remplie du tableau
dLig = .Range("BM" & Rows.Count).End(xlUp).Row
' Pour chaque ligne
For Lig = 17 To dLig
.Range("BP" & Lig).GoalSeek Goal:=1, ChangingCell:=.Range("BM" & Lig)
Next Lig
End With
End Sub
Sub Ajustement_vCalcul()
Dim dLig As Long, Lig As Long
Dim Pourcent As Single
With Sheets("Projection_QTE_2021")
' Dernière ligne remplie du tableau
dLig = .Range("BM" & Rows.Count).End(xlUp).Row
' Pour chaque ligne
For Lig = 17 To dLig
Debug.Print .Range("BP" & Lig).Value
Pourcent = .Range("BM" & Lig).Value + (1 - .Range("BP" & Lig).Value)
.Range("BM" & Lig).Value = Pourcent
Next Lig
End With
End Sub@+
Bonjour Bruno,
Un grand grand merci pour le code, je vous remercie pour votre aide, pour ceux à qui celà intéresse à adapter voici pour résumer ce que je voulais:
Avant: donc la somme des taux jusqu'à dec tombait par exemple à 95% et mon objectif était de 100% pour chacune de lignes de mon tableau
Et voici le résultat après le code de bruno pour obtenir en auto sur chacune des lignes une valeur cible à 100%
Valeur Cible c'est mon taux du mois à 95% (la somme de tous mes mois de l'année)
Je souhaite 100%
Ma cellule à modifier est sur le mois d'octobre
Et voici le code que j'ai opté par rapport aux réponses de Bruno:
Sub CIBLE()
' BP16 cellule contenant la formule (somme des mois de l'année en %)
' 100% est la valeur que la formule doit atteindre = LA CIBLE
' BM16 cellule contenant la variable à modifier (Taux du mois octobre)
Dim dLig As Long, Lig As Long
'Nous sommes sur l'onglet "PROJECTION QTE 2021"
With Sheets("Projection_QTE_2021")
' Remplir les infos jusqu'à la dernière ligne remplie du tableau
dLig = .Range("BM" & Rows.Count).End(xlUp).Row
' Répéter à partir de la ligne 16 jusqu'à la dernière ligne vide, pour celà il faut zéro ligne vide!!!!
'Attention également il n'ajuste pas sur les lignes négatives, il faudra faire du manuel sur les mois positifs
For Lig = 16 To dLig
'Effectuer une valeur cible afin de réajuster le mois d'Octobre
.Range("BP" & Lig).GoalSeek Goal:=1, ChangingCell:=.Range("BM" & Lig)
Next Lig
End With
End Sub
Encore un grand merci