désolée, je suis débutante.

Nath34

XLDnaute Nouveau
Amis du soir, bonsoir,

Comme le titre l'indique, je suis débutante (et je pense que je vais paraître ridicule pour pas mal d'entre vous :)
Mon problème :
- Un tableau A1:E5
- Sur la colonne A des chiffres
- Sur les cellules des colonnes B , D , E, j'aimerais en rentrant un chiffre, ce dernier (comme par magie) se multiplie par le chiffre mentionné dans la même ligne en colonne A et mette le résultat dans sa propre cellule. En fait, je veux garder vierge les cellules ou je ne mettrais pas de chiffre.
En me relisant, je n'arrive même pas à me comprendre, ah ah ah... avec un peu de chance, vous y arriverez mieux que moi.

Merci d'avance.
 

chris

XLDnaute Barbatruc
Bonjour et bienvenue

Ce que tu décris nécessite de la programmation de façon à réagir à chacune de tes saisies pour remplacer ta saisie par un autre nombre.

Si tu es débutante il vaudrait sans doute mieux commencer par ajouter des colonnes entre B D et E (ou est passé C du reste ?)
et mettre une formule de multiplication dans ces colonnes intermédiaires...
 

Nath34

XLDnaute Nouveau
Merci Chris,
C'est sure que ça serait plus facile en ayant la possibilité de rajouter des colonnes et même la débutante que je suis y arriverait dans ce cas... Sauf que la, j'ai vraiment besoin que le résultat soit dans la cellule même.
J'ai d'ailleurs essayé avant mais d'après ce que j'ai compris, j'ai eu un problème de "référence circulaire" : et la, pour moi, c'est du chinois !

ps : Oui, c'est vrai ? Mais ou est donc passé C ???
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonsoir à tous, chris

Nath34 (bienvenue sur le forum)
Puisque tu débutes, on va commencer doucement ;)
VB:
Private Sub Worksheet_Change(ByVal T As Range)
Application.ScreenUpdating = False
If IsEmpty(Cells(T.Row, 1)) Then Exit Sub
If Not Intersect(T, Range(Cells(T.Row, "B"), Cells(T.Row, "E"))) Is Nothing Then
Application.EnableEvents = False
T.Value = T.Value * Cells(T.Row, 1).Value
Application.EnableEvents = True
End If
End Sub
NB: Mettre ce code VBA dans le code de la feuille où il y a le tableau
(Clic-droit sur l'onglet-> Visualiser le code-> là copier/coller le code VBA ci-dessus)
Ensuite retournes dans Excel et saisis un chiffre en B3, normalement, il doit se passer quelque chose, si il y a un chiffre en A3.

Sinon, il reste la sage et judicieux conseil de chris: utiliser des formules ;)

EDITION: Bonsoir mapomme
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir Nath34 et bienvenue sur XLD :),

En retard par rapport à mes camarades (bonsoir chris ;), Staple1600 ;)), une autre version en VBA:
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Inter As Range, xcell As Range

   Set Inter = Intersect(Target, Range("b1:e5"))
   If Not Inter Is Nothing Then
      On Error GoTo fin
      Application.EnableEvents = False
      For Each xcell In Inter
         If IsNumeric(Cells(xcell.Row, "a")) And Cells(xcell.Row, "a") <> "" Then
            If xcell = "" Then
               xcell.ClearContents
            ElseIf IsNumeric(xcell) Then
               xcell = Cells(xcell.Row, "a") * xcell
            Else
               xcell.ClearContents
            End If
         Else
            xcell.ClearContents
         End If
      Next xcell
   End If
fin:
   Application.EnableEvents = True
End Sub
 

Pièces jointes

  • Nath34- coeff par valeur- v1.xlsm
    14.1 KB · Affichages: 37
Dernière édition:

Statistiques des forums

Discussions
311 711
Messages
2 081 786
Membres
101 817
dernier inscrit
carvajal