Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/01/2012, 19h41   #1
Invité de passage
 
Homme Claude
Chargé d'affaire
Inscription : octobre 2011
Messages : 26
Détails du profil
Informations personnelles :
Nom : Homme Claude
Localisation : Canada

Informations professionnelles :
Activité : Chargé d'affaire
Secteur : Industrie

Informations forums :
Inscription : octobre 2011
Messages : 26
Points : 3
Points : 3
Par défaut Addition d'une cellule à une variable

Bonjour, je voudrais que sur la présence du chiffre 1 dans la cellule A16, additionner le contenu de la cellule K16 dans ma variable F0600 et afficher ma variable F0600 dans ma cellule J7. J'ai écrit le code suivant, mais il n'y a rien qui se passe dans mon fichier. J'aurais besoin d'un peu d'aide.

Merci

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub Worksheet_Change(ByVal Target As Range)
 
Dim F0600 As Long
 
Range("J7:J10").ClearContents
 
'PROJET B12F0600
If Target.Address = "$A$16" And Target.Count = 1 Then
 
Select Case Target.Value
        Case "1"
        F0600 = Range("K16").Value
        Range("J7") = F0600
End Select
 
End If
 
End Sub
Claude_B est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2012, 19h45   #2
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
D'abord, la cellule A16 est elle modifiée par l'utilisateur (directement ou par macro) ou bien elle contient une formule?
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/01/2012, 20h05   #3
Invité de passage
 
Homme Claude
Chargé d'affaire
Inscription : octobre 2011
Messages : 26
Détails du profil
Informations personnelles :
Nom : Homme Claude
Localisation : Canada

Informations professionnelles :
Activité : Chargé d'affaire
Secteur : Industrie

Informations forums :
Inscription : octobre 2011
Messages : 26
Points : 3
Points : 3
Par défaut ADDITION D'UNE CELLULE À UNE VARIABLE

la cellule A16 est modifiÉE manuellement
Claude_B est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2012, 20h12   #4
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
A mettre dans le module de ta feuille.
Si l'utilisateur écrit 1 en A16, la valeur contenue de K16 est copiée en J7
Code :
1
2
3
4
5
6
7
8
9
Private Sub Worksheet_Change(ByVal Target As Range)
 
If Target.Address = "$A$16" Then
    Application.EnableEvents = False
    Range("J7:J10").ClearContents
    If Target.Value = 1 Then Range("J7").Value = Range("K16").Value
    Application.EnableEvents = True
End If
End Sub
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2012, 20h28   #5
Invité de passage
 
Homme Claude
Chargé d'affaire
Inscription : octobre 2011
Messages : 26
Détails du profil
Informations personnelles :
Nom : Homme Claude
Localisation : Canada

Informations professionnelles :
Activité : Chargé d'affaire
Secteur : Industrie

Informations forums :
Inscription : octobre 2011
Messages : 26
Points : 3
Points : 3
Daccord, mais je voudrais que la valeur contenu dans K16 soit ajoutée dans la variable F0600. Je voudrais pouvoir incrémenter la variable F0600. Mon but est de faire une feuille de temps qui comporterait plusieurs projets dont F0600. Le chiffre 1 représente le code du projet.
Ex. 1 = projet F0600
2 = projet F0601 etc.
Donc à chaque fois qu'il y a le chiffre 1 dans une des cellules de la colonne A j'additionne le contenue des cellules K dans J7. Ce qui me donne le nombre d'heure total de chaque projet. Donc ily aura plusieurs vaiables dans mon programme. Une variable pour chaque projet et chaque variable sera aditionner dans une case différente.

Ce que je veux c'est incrémenter ma variable s'il y a le chiffre 1 dans une des cellules de la colonne A

Merci pour ton aide
Claude_B est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2012, 20h39   #6
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 849
Points : 16 849
Envoyer un message via Skype™ à bbil
Il vas falloir que tu repose plus clairement ton problème actuellement ce que tu avais commencé à écrire c'est si la cellule A16 est modifié par l'utilisateur et la valeur saisie est 1 , tu place le contenu de la cellule K16 dans J7 ... il n'est pas question d'incrémentation ou d'addition dans ton code ...

ton histoire de variable n'est pas claire non plus... sachant que tel que tu la déclare ta variable est initialisé à 0 par VB à chaque appel de ta fonction et donc ne tiens pas compte des valeurs précédente ce celle-ci..
voir : http://mhubiche.developpez.com/Access/variables/#LIII
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2012, 20h49   #7
Invité de passage
 
Homme Claude
Chargé d'affaire
Inscription : octobre 2011
Messages : 26
Détails du profil
Informations personnelles :
Nom : Homme Claude
Localisation : Canada

Informations professionnelles :
Activité : Chargé d'affaire
Secteur : Industrie

Informations forums :
Inscription : octobre 2011
Messages : 26
Points : 3
Points : 3
D'accord voici ce que je veux faire.

si j'ai 1 dans A16, alors je prend le contenu de K16 et je le met dans ma variable F0600 et j'affiche le contenu de F0600 dans J7

si j'ai 1 dans A17, alors je prend le contnu de K17 et je l'additionne avec le contenu existant de F0600 et j'affiche le contenu de F0600 dans J7

si j'ai 1 dans A18, alors je prend le contnu de K18 et je l'additionne avec le contenu existant de F0600 et j'affiche F0600 dans J7 et ainsi de suite jusqu'à la fin soit quand j'arrive à la cellule A62

J'espère avoir été plus claire

Merci
Claude_B est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2012, 20h59   #8
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 849
Points : 16 849
Envoyer un message via Skype™ à bbil
Citation:
si j'ai 1 dans A16
faudrait savoir tu avais dit "si la valeur change et passe à 1" ..., ce qui veux dire qu'as chaque nouveau passage tu effectue l’addition .. est-ce bien cela ?

tu as déjà lu : http://mhubiche.developpez.com/Access/variables/#LIII ? pour ton problème d'initialisation de variables ?
de plus complète ta demande que doit devenir la valeur de ta variable entre deux chargement de ton fichier excel ?
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2012, 21h11   #9
Invité de passage
 
Homme Claude
Chargé d'affaire
Inscription : octobre 2011
Messages : 26
Détails du profil
Informations personnelles :
Nom : Homme Claude
Localisation : Canada

Informations professionnelles :
Activité : Chargé d'affaire
Secteur : Industrie

Informations forums :
Inscription : octobre 2011
Messages : 26
Points : 3
Points : 3
Ok je suis allé voir sur Mhubiche. Ma variable était mal déclarée.

Merci pour tout.
Claude_B est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2012, 21h12   #10
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
En fin de compte une simple SOMME.SI en J7 ferait l'affaire.
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h35.


 
 
 
 
Partenaires

Hébergement Web