Calcul VBA si valeur dans une colonne

  • Initiateur de la discussion Initiateur de la discussion nanor79
  • 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 !

N

nanor79

Guest
Bonjour à tous,

Je cherche à faire un programme en VBA pour faire un calcul.

Pour être plus clair, je vais m'appuyer sur l'exemple en PJ :

Il faudrait que s'il y a un code dans la colonne C, le programme fasse la multiplication de la Qté par le PU et inscrive le résultat dans la colonne F.

Merci beaucoup pour votre aide.

Ronan
 

Pièces jointes

Re : Calcul VBA si valeur dans une colonne

Bonjour Ronan et Bienvenue, re le forum,

Pourquoi sortir l'artillerie lourde alors que : =SI(C5<>"";D5*E5;0), peu suffire....

Au besoin : Outils/Options et décocher Valeurs Zéro si elles sont génantes.

A te lire.

Jean-Pierre
 
Re : Calcul VBA si valeur dans une colonne

Re, et pour saluer Matthieu

que je lis à chacune de ses interventions...

Mais, tu t'aperceveras, au fil du temps, que moins il y a de code, sauf pour du lourd et du répétitif, mieux tu te porteras....

Bonne soirée...
 
Re : Calcul VBA si valeur dans une colonne

Re,

De plus, je viens de tester sur un autre poste.

Si les cellules C5, par exemple ou C7 sont vides, le calcul reste affiché..... ?????

De toutes façons, cela reste dix fois fois plus long qu'une formule instantanée....
 
Re : Calcul VBA si valeur dans une colonne

Bonjour,

J'essaye d'écrire un code pour rechercher des valeurs avec condition :

Si mon numéro d'essai feuil résumé cellule B14 est dans ma colonne J feuil 1 alors je récupère les données dans les colonnes K, L et O pour les mettre dans ma feuil résumé
Sinon je mets NOData dans ma feuil résumé

(Je sais pas si c'est clair...)

J'ai rédigé ce code :

Dim i As Integer
Dim derniere As Integer
derniere = Sheets(1).Range("J" & Cells.Rows.Count).End(xlUp).Row

For i = 2 To derniere

If Sheets("résumé").Range("B14").Value = Sheets(1).Range("J" & i).Value Then
Sheets("résumé").Range("C17") = Application.WorksheetFunction.VLookup(Range("B14").Value, Sheets(1).Range("J2:N" & derniere), 2, False)
Sheets("résumé").Range("C18") = Application.WorksheetFunction.VLookup(Range("B14").Value, Sheets(1).Range("J2:N" & derniere), 3, False)
Sheets("résumé").Range("D18") = Application.WorksheetFunction.VLookup(Range("B14").Value, Sheets(1).Range("J2:O" & derniere), 6, False)

Else
Sheets("résumé").Range("C17") = "NoData"
Sheets("résumé").Range("C18") = "NoData"
Sheets("résumé").Range("D18") = ""

End If
Next i

Le problème c'est que dans ce code, la valeur est recherchée ligne par ligne et ce jusqu'à arriver à la dernière ligne. Du coup j'ai toujours NoData d'affiché (sauf une fois, losque je recherche l'essai correspondant à la dernière ligne).
Comment puis je faire pour rechercher dans la colonne et non ligne par ligne?

Merci !
 
- 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

  • Question Question
Microsoft 365 Fonction si
Réponses
7
Affichages
253
Réponses
2
Affichages
380
Retour