cellule.value = cellule.value + formule

chelsea

XLDnaute Nouveau
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 :confused: ???

merci
 
Dernière édition:
C

Compte Supprimé 979

Guest
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à ;)
 

Lord Nelson

XLDnaute Occasionnel
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
 

chelsea

XLDnaute Nouveau
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. :confused:
 
Dernière édition:

chelsea

XLDnaute Nouveau
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 :p
 

chelsea

XLDnaute Nouveau
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)
:confused:
et la fonction somme ne peut pas marcher car l'addition peut additionner 1 à n rechercheV
 

Discussions similaires

Statistiques des forums

Discussions
312 559
Messages
2 089 602
Membres
104 224
dernier inscrit
Brilma