leçon VBA J-M gilles

F

francois

Guest
Bonsoir
Quelqu'un pourrait-il m'expliquer le 'B A BA DU V B A'
Dans les cours telechargé de J-M GILLES
leçon N°1; action 3 : d'où vient l'image 10 ?,où est elle rangée et comment la modifier?????????
des fois je me demande ce que je fais sur terre :-((
merci de m'expliquer!

bonne soirée à tous (tiens il pleut!)

francoisMEL
 
J

Jare

Guest
Salut francois,

L'image est sur la feuille mais rendu Visible ou non par le code si dessous (de JMG), et Il t'est possible de remplacer l'image par celle de ton choix !

Sub Action3()
If ActiveSheet.Shapes("Image 10").Visible = False Then
ActiveSheet.Shapes("Image 10").Visible = True
Else
ActiveSheet.Shapes("Image 10").Visible = False
End If
End Sub

Salut A+
 
F

francois

Guest
bjr Raphaël , Jare, Djar et les autres.
Raphaël ,Djar a repondu à ta question.
Jare.
j'ai bien compris la macro ,mais j'ai fait différentes tentatives pour changer l'image , mais ça bogue à chaque fois
je ne comprend pas la manip à faire !
je pensais pouvoir la localisée dans l'editeur vba ,

Pour info (c'est juste pour comprendre le principe ,car je n'ai pas d'images ni de guirlandes à inserées dans une de mes applications ...)
bonne journée à tous
francoisMEL
 
V

Vériland

Guest
Bonjour François et bonjour le Forum,

Alors si j'ai bien compris ta question François, tu souhaiterais connaitre le principe de cette macro ?

Alors le principe n'est pas très compliqué...tout dabord pour cet exemple il 'sagit de "l'image 10"...alors pour te renseigner du pourquoi de ce nom, chaque nouvelle image que tu vas insérer s'incrementera de plus 1...Ainsi l'image suivante portera le nom...image 11, image12, image13 etc...sur un nouveau fichier elle commencera à 1...(à moins qu'elle soit mémorisée)...enfin bref!...

déjà pour connaitre le nom de l'image tu regardes dans la zone Nom située à l'extrémité gauche de la barre de formule...cela te permet déjà d'identifier la cellule ou l'image en question...suivant l'image que tu souhaites faire apparaitre il te suffira ensuite d'indiquer son nom dans la macro...voilà pour l'image...

Ensuite pour la macro ce sont False et True qui attribueront une valeur à l'image après activation de la macro...en spécifiant si l'affichage de l'image doit avoir lieu ou pas...(tu sais le langage binaire......oui/non...0/1...vrai/faux...lol)

False possède une valeur égale à 0 (faux)
True possède une valeur égale à -1 (vrai)

donc en clair lorsque tu actives "action3" la condition If détermine si l'image est visible (-1) alors cacher (0)...ensuite en appuyant sur le bouton si l'image est cachée (0) alors l'afficher (-1) et ainsi de suite...

C'est un peu compliqué à expliquer mais je pense que ça répond à ta question ?

A+ Vériland (merci à F1 dans VBA) hi hi hi...
 
A

Alcion

Guest
Dans mon classeur de gestion, il y a une feuille "Achat" et une feuille "Recette".
La feuille "Achat", liste le nom des clients, le détail des achats réalisés pour exécuter le chantier de ce client, le nom du fournisseur, le montant des achats, etc...
La feuille "Recette" liste le montant des recettes de chaque client.
Ces 2 feuilles sont uniquements des feuilles de saisie.
J'essaie désespérément de faire une 3éme feuille, qui me permettrait de collecter les infos de ces 2 feuilles, sachant que le critère est le client lui même.
Je veux collecter automatiquement le montant des achats relatifs au client, et la recette du dit client, sachant et c'est là mon problème que je suis appelé à modifier la feuille recette au fur et à mesure que les encaissements du dit client (les clients nous paie sur situation à l'avancement des travaux).
Hors quand je modifie la ligne dans recette, les formules que j'emploie m'indiquent que la référence de la cellule n'est pas bonne- #REF
Ais-je été clair ?????
Merci d'avance.
 
M

Monique

Guest
Bonsoir,

En utilisant la fonction SOMME.SI(plage;critère;somme_plage)
Et en nommant les plages de cellules.

Pour les achats :
=SOMME.SI(client_achat;$A6;achats)
client_achat étant la colonne où se trouvent le nom des clients dans la feuille des achats.
A6 contient le nom du client recherché
achats est le nom de la plage où est nté le montant des achats.

Pour les recettes :
=SOMME.SI(client_recette;$A6;recettes)

Pour nommer une plage de cellules :
Sélectionner la plage - Barre de menus - Insertion - Nom - Définir
et noter le nom choisi.
 

Pièces jointes

  • Clients_Alcion.xls
    17.5 KB · Affichages: 76
  • Clients_Alcion.xls
    17.5 KB · Affichages: 85
  • Clients_Alcion.xls
    17.5 KB · Affichages: 81
A

Alcion

Guest
Re: Calcul sur base de données.

Madame, Mademoiselle,

Merci de votre réponse, malheureusement elle ne solutionne pas mon problème,
car le calcul des sommes dans les feuilles respectives et avec les critères de choix
s'effectuent sans aucun soucis.Les fonctions "Somme.SI" ou "BDSOMME" font parfaitement l'affaire.
C'est la troisième feuille, celle qui regroupe automatiquement les infos des 2 autres que je ne solutionne pas.
Dans cette feuille la première colonne est le nom du client, le pivot central
Elle doit récupérer automatiquement ce nom depuis la feuille "Recette" l'ajouter au fur et à mesure des nouveaux clients en créant une nouvelle ligne et lui faire correspondre le montant des achats et des recettes des 2 autres feuilles, le critère étant bien sur et toujours le nom du client récupérer automatiquement à partir de "Recette".
Il faut savoir que recette doit pouvoir être modifier, sachant qu'une ligne ou qu'un client peut être supprimer, et c'est précisément là que le rafraichissement ne s'exécute pas, les différentes formules s'obstinant à conserver la première référence l'erreur renvoyé est "#REF".

Merci de votre aide, mais je pense que c'est un vrai problème qui ne doit pouvoir se résoudre
que grace à du VBA. Et là, je suis nul de chez nul.


Cordialement

Alain
 
M

Monique

Guest
Re: Calcul sur base de données.

Bonjour,

Pas de macros, je n'y comprends rien.

C'est faisable avec des formules, en donnant un numéro à chaque client inscrit sur la feuille "Achats".
Un numéro s'inscrit dès que l'on entre un nom, c'est tout.
Chaque nom entré en feuille "Recettes" a également ce même numéro, de façon automatique.
Ce nom et ce numéro sont reportés automatiquement sur la feuille "Récap".
On peut supprimer les lignes de certains clients, la numérotation se refait d'elle-même.
Si aucun client n'est inscrit en feuille "Achats", la feuille "Récap" reste vierge.

Il faut que le client soit inscrit en feuille "Achats" pour pouvoir avoir un numéro en feuille "Recettes" et pour povoir apparaître en feuille "Récap".

Ce n'est pas un système d'insertion de lignes, c'est un système où les lignes restent vides s'il n'y a pas de données.
 

Pièces jointes

  • Clients_Alcion.xls
    26 KB · Affichages: 71
  • Clients_Alcion.xls
    26 KB · Affichages: 73
  • Clients_Alcion.xls
    26 KB · Affichages: 73

Membres actuellement en ligne

Statistiques des forums

Discussions
314 645
Messages
2 111 536
Membres
111 182
dernier inscrit
savio