cellule.value = cellule.value + formule

  • Initiateur de la discussion Initiateur de la discussion chelsea
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

chelsea

Guest
bonjour tout le forum?

voila, j'ai une cellule qui est le résultat de l'addition de plusieurs rechercheV.

cependant le nombre de rechercheV à additionner peut varier selon un certain nombre de personne.

j'ai essayé de faire une boucle, mais sans résultat satisfaisant :

Code:
ligne_vlookup = 8
    
    ActiveSheet.Range("D" & ligne).Select
    For i = 1 To nbpers
    
    ActiveCell.Value = ActiveCell.Value + "=VLOOKUP(RC[-3],'Estimation détaillée'!R" & ligne_vlookup & "C1:R" & ligne_vlookup + 13 & "C4,4,FALSE)"
        ligne_vlookup = ligne_vlookup + 18
        'MsgBox ligne_vlookup
    Next
selon moi je pense que c'est juste une petite erreur de syntaxe 😕 ???

merci
 
Dernière modification par un modérateur:
Re : cellule.value = cellule.value + formule

Salut ChelSea,

Tu as plusieurs problèmes dans ton code !

1) Tu sélectionne la cellule "D" & Ligne
Ligne n'existe pas dans le code donné !?

2) Tu ajoutes une formule à une valeur !?
ActiveCell.Value = ActiveCell.Value + "=VLOOKUP(RC[-3],'Estimation détaillée'!R" & ligne_vlookup & "C1:R" & ligne_vlookup + 13 & "C4,4,FALSE)"

Le mieux est de créer ta formule complète au format local, dans une variable, ce qui te donne le code :
Code:
Dim LigV As Integer, NbPers As Integer, VForm As String
LigV = 8: NbPers = 2
ActiveSheet.Range("D" & LigV).Select
For I = 1 To NbPers
  If I = 1 Then
    VForm = "=RECHERCHEV(A" & LigV & ";'Estimation détaillée'!$A$" & LigV & ":$D$" & LigV + 13 & ";4;FAUX)"
  Else
    VForm = VForm & "+RECHERCHEV(A" & LigV & ";'Estimation détaillée'!$A$" & LigV & ":$D$" & LigV + 13 & ";4;FAUX)"
  End If
Next
ActiveCell.FormulaLocal = VForm

Voilà 😉
 
Re : cellule.value = cellule.value + formule

Salut Chelsea,

Dans ton code, nbpers n'a pas de valeur, donc ta boucle ne fonctionne pas.


Essaie ceci :
Code:
nbpers = 3
ligne_vlookup = 8
    ActiveSheet.Range("D" & ligne).Select
    For i = 1 To nbpers
    
    ActiveCell.Value = ActiveCell.Value + "=VLOOKUP(RC[-3],'Estimation détaillée'!R" & ligne_vlookup & "C1:R" & ligne_vlookup + 13 & "C4,4,FALSE)"
        ligne_vlookup = ligne_vlookup + 18
        'MsgBox ligne_vlookup
    Next

A+
Horatio
 
Re : cellule.value = cellule.value + formule

bonjour brunoM45 et lord Nelson,

le code que je vous ai passé n'est qu'un extrait.

toutes mes variables sont bonnes.
en fait le programme rentre une fois dans la boucle mais c'est au moment de passer à la seconde fois que ça déconne.
quand je regarde ma cellule qui est en D8(puisque pour moi ligne=8) les coordonnées des cellules de la zone de recherche sont fixes. 😕
 
Dernière modification par un modérateur:
Re : cellule.value = cellule.value + formule

Code:
Private Sub CommandButton1_Click()

Dim NomFeuille As String
Dim ligne, nbpers, ligne_vlookup As Integer 'ligne_vlookup est utilisée pour les lignes concernant la rechercheV
ligne = 20


NomFeuille = InputBox("quel est le nom de la feuille à mettre à jour ?")
Sheets(NomFeuille).Select

nbpers = InputBox("combien de personne travail sur le projet")

'remplissage de la colonne used
    ActiveSheet.Range("D" & ligne, "F" & ligne + 13).Select
    Selection.ClearContents
    
    ligne_vlookup = 8
    
    ActiveSheet.Range("D" & ligne).Select
    For i = 1 To nbpers
    
    ActiveCell.Value = ActiveCell.Value + "=VLOOKUP(RC[-3],'Estimation détaillée'!R[" & ligne_vlookup & "]C[1]:R[" & ligne_vlookup + 13 & "]C[4],4,FALSE)"
        ligne_vlookup = ligne_vlookup + 18
        'MsgBox ligne_vlookup
    Next
        
    ActiveSheet.Range("D" & ligne).Select
    Selection.AutoFill Destination:=ActiveSheet.Range("D" & ligne, "D" & ligne + 13), Type:=xlFillDefault
    ActiveSheet.Range("D20").Select
    '
    
    'remplissage de la colonne raf
    ligne_vlookup = 8
    
    ActiveSheet.Range("E" & ligne).Select
    For i = 1 To nbpers
    
    ActiveCell.Value = ActiveCell.Value + "=VLOOKUP(RC[-4],'Estimation détaillée'!R" & ligne_vlookup & "C1:R" & ligne_vlookup + 13 & "C4,3,FALSE)"
        ligne_vlookup = ligne_vlookup + 18
    
    Next
    
    ActiveSheet.Range("E" & ligne).Select
    Selection.AutoFill Destination:=ActiveSheet.Range("E" & ligne, "E" & ligne + 13), Type:=xlFillDefault
    '
end sub

désolé ligne n'était pas égale à 8 mais à 20 😛
 
Re : cellule.value = cellule.value + formule

en fait le problème se pose au niveau de la zone de recherche de la fonction

car avec ça :
Code:
ligne_vlookup = 8
    
    ActiveSheet.Range("D" & ligne).Select
    For i = 1 To nbpers
    MsgBox ligne_vlookup
    ActiveCell.Value = ActiveCell.Value + "=VLOOKUP(RC[-3],'Estimation détaillée'!R[" & ligne_vlookup & "]C1:R[" & ligne_vlookup + 13 & "]C4,4,FALSE)"
        ligne_vlookup = ligne_vlookup + 18
        MsgBox ligne_vlookup
    Next

il ne fais qu'un tour dans la boucle
et la cellule D20=
Code:
RECHERCHEV(A20;'Estimation détaillée'!$A28:$D41;4;FAUX)
😕
et la fonction somme ne peut pas marcher car l'addition peut additionner 1 à n rechercheV
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

T
Réponses
4
Affichages
3 K
Tooxy
T
L
Réponses
4
Affichages
2 K
Lorenzogazier
L
V
Réponses
2
Affichages
1 K
V
D
Réponses
1
Affichages
819
D
Retour