besoin de votre aide en vba Excel 2010 : boucle VBA

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 !

manrailou

XLDnaute Nouveau
Bonjour à tous,
Je suis nouveau depuis à peine quelques minutes sur votre site
J'ai un soucis pour un fichier personnel
Je souhaiterai réaliser 2 macros VBA Excel 2010
J'ai tout expliqué dans le fichier en pièce jointe

N'hésitez pas à être créatif, mais aussi simple, en expliquant en VBA chaque ligne de code que vous pourrez créer

Merci par avance de votre aide

Etant nouveau sur ce site, je me tiens à votre disposition si je ne fais pas les bonnes démarches ou demandes
Je ne connais pas les us et coutumes et autres salons disponibles pour écrire ce message

Merci de votre aide

Manrailou

Etant novice sur internet, n'hésitez pas à répondre aussi sur mon adresse personnelle car je sais pas si j'arriverai à retrouver mon message dans tout ce site
 

Pièces jointes

Re : besoin de votre aide en vba Excel 2010 : boucle VBA

Bonjour à toi, Manrailou

Bon, personne ne t'a répondu car ce n'est pas l'objectif du forum que de dvper un projet complet.
En théorie, tu dois t'y atteler, et nous sommes là pour t'apporter conseils.

J'ai un peu de temps donc, je fais l'effort. Ca vaudra au minimum 2 Kfés (o🙂

Trouve en fichier joint ce que j'ai dvpé pour toi.

A priori, cela répond a ton besoin, si j'ai bien compris ta demande qui d'apres moi n'est pas exhaustive.

Le point 1 : icone pere Noel dans fichier "besoin d'aide" (fait appel à la macro "ActualiserObjectifEtprovisoire")
Le point 2 : se lance automatiquement si une valeur en vente est modifiée

pour voir les macros, faire ALT F11 module "TesMacros"
pour le lancement automatique voir en vba projet/Feuil2(VENTES)

pour lancer la macro pas à pas dans le module "TesMacros"
, se mettre ds la macro et faire F8 par étape (jaune)

Bon ben....bienvenue dans le monde du vba!

Dis moi..
Frédéric
 

Pièces jointes

Re : besoin de votre aide en vba Excel 2010 : boucle VBA

Bonjour ,

tu peux également mettre :
Code:
sub  ActualiserObjectifEtprovisoire
Application.screenupdating=false
ici le code
Application.screenupdating= true
end sub
cela va permettre de ne plus faire scintiller la feuille
pour le reste on peux encore optimiser la macro mais fredl a fait du bon boulot déjà et je ne voudrais pas le lui enlever le mérite.
A+
 
Re : besoin de votre aide en vba Excel 2010 : boucle VBA

Bonjour FredL et Fhoest,
Je vous remercie du temps que vous avez passé dessus, je suis plus que novice et je vous avoue que votre aide m'est précieuse
Cependant j'ai quelques remarques :

Pour la macro avec le pere noel, ça fonctionne comme je veux à une exception, que j'avais oublié de vous préciser :
Si aucune valeur dans l'onglet VENTES, alors pour les cellules appropriées ne pas mettre de couleur
tout le reste de ce code fonctionne comme j'aimerai

En revanche pour l'actualisation de l'onglet ETATS, là je n'ai pas du être très clair donc j'essaye de vous redire afin que vous corrigiez (si vous le voulez et pouvez) le code source :
si état = définitif , pas de couleur
si dans l'onglet VENTES , pas de chiffre, pas de couleur (dans les cellules appropriées)
si provisoire dans l'onglet ETATS et pas de chiffres dans l'onglet VENTES, pas de couleur (dans les cellules appropriées)
si valeur dans l'onglet VENTES = valeur dans l'onglet OBJECTIF, alors dans l'onglet ETATS, dans la cellule appropriée il devra y avoir écris le mot OBJECTIF (issu de la liste déroulante)

à la rigueur si cela peut vous aider dans le code on peut se dire que si dans VENTES il n'y a pas de valeur alors, dans ETAT il y a un nouveau parametre dans la liste déroulante (par exemple : "Vide")


De plus dans le code je ne comprends pas pourquoi il est fait référence à A1:L1 alors que dans aucun de mes onglets il n'y a de valeurs sur ces cellules

Enfin, pour pouvoir aussi me débrouiller de mon côté, vous serait-il possible de simplifier au maximum le code parce que je n'arrive pas à comprendre la logique de ces conditions IF autant imbriquées

Enfin, dernier point qui me rendrait "heureux" ce serait de savoir si c'est possible dans le code fourni par FREDL de remplacer les wcell xcell par les noms réels des onglets (ou des plages de cellules avec le nom d'onglet, style : sheets("OBJECTIFS").range(....

car je n'ai pas compris l'enchainement ...

Je sais que je suis débutant et que je dois éviter de vous agacer, mais déjà votre aide m'a été précieuse, mais aujourd'hui, vos réposes sont incomplètes.

Merci par avance à ceux qui pourront m'aider et FREDL ... 1 café pour le moment 🙂

Merci de vos retours et surtout, n"hésitez pas à faire du code simple avec des variable le plus clair possible car j'avoue que j'ai perdu mes petits avec les xcell, wcell ...

je voudrai du simple et compréhensible par un novice ... même si le code est pas le plus optimisé possible

🙂
Au plaisir d'avoir vos réponses
Manrailou
 
Re : besoin de votre aide en vba Excel 2010 : boucle VBA

Bonjour,
je crois avoir fait les modifs que tu souhaitais.
A tester.
J'ai modifié la nomination des x,y z en des termes plus explicites.
par contre je ne pourrais faire plus simple en programmation pour toi, désolé.
pour le "activecell.Offset(0, 1).Range("A1:L1"),
(A1:L1) veut dire que l'on va travailler sur 12 cellules
(0,1) veut dire que la 1ere concernée sera à 0=ligne et 1 colonne à droite de la cellule active (0=ligne,1=colonne)

bref la 1ere à droite

Dis moi

A+
Frederic
 

Pièces jointes

Re : besoin de votre aide en vba Excel 2010 : boucle VBA

Bonsoir FREDL,

Merci beaucoup pour le temps que vous me consacrez, je suis ravi de pouvoir compter sur votre aide, très précieuse.
J'ai regardé votre fichier (le 2ème, celui ci-dessus) mais un probleme persiste :

Il ne faut plus que "EN COURS" apparaisse dans la liste déroulante, seuls doivent rester "Provisoire", "Définitif", "Objectif" ... et si pour les besoins de la macro éventuellement "Vide" (pour indiquer que dans l'onglet VENTES il n'y a pas de valeur associée)

J'ai testé à maintes reprises car je voulais pas répondre à la va vite ...
Le test démontre que le résultat attendu n'est pas encore là

En fait pour faire le même test que moi, positionnez vous dans VENTES cellule C6 et effectuez différents tests :
Valeur à 14 ... l'état doit passer en PROVISOIRE
Valeur à 15 ... l'état doit passer en OBJECTIF (car vente = objectif pour la cellule correspondante)
Valeur = vide ... l'état doit passer à VIDE (afin de vous faciliter le code VBA)
Tester à nouveau avec une valeur ... pour vérifier que la macro s'effectue bien (car j'ai un doute)

En fait je souhaite que la macro puisse faire :
Si dans VENTE, il y a une valeur = dans ETAT, cellule en PROVISOIRE
Si dans VENTE, il y a une valeur égale à la valeur correspondante dans OBJECTIF = dans ETAT, celule en OBJECTIF
Si dans VENTE, il n'y a pas de valeur (pas de chiffre, pas de texte, cellule vide) = dans ETAT, cellule en VIDE

Et je n'ai pas parlé de DEFINITIF, normal car cette valeur est une valeur que je devrai sélectionner à la main, quand bon me semble, sans aucune possibilité (et volonté) d'automatiser

Toujours pareil pour le code couleur :
PROVISOIRE = orange
OBJECTIF = orange
VIDE = pas de couleur
DEFINITIF = pas de couleur

Je vous remercie par avance pour votre, aide, je sens que le projet abouti, et je vous remercie sincèrement du temps et des connaissances que vous mettez à contribution pour m'aider alors qu'on se connait pas. C'est extremement gentil et bienveillant de votre part (je ne vous fais pas de la lèche, je suis sérieux)

Enfin je conclurai aussi par un remerciement pour l'effort dans le code VBA pour que cela soit plus lisible pour moi
L'enchainement des conditions et des boucles est difficile à comprendre (et donc à reproduire) mais je vous remercie.

En espérant que vous m'accorderez une autre réponse qui j'espère pourra cloturer ma demande
Bien informatiquement,

Manrailou
 
Re : besoin de votre aide en vba Excel 2010 : boucle VBA

Bonjour,
quand tu dis :"...Si dans VENTE, il y a une valeur = dans ETAT, cellule en PROVISOIRE"

Ne veux tu pas dire plutot :
"...Si dans VENTE, il y a une valeur = celle dans Objectif : dans ETAT, cellule en OBJECTIF"?

Bon, j'ai fait un essai...
J'avoue que j'ai un peu des difficultés à cerner ton besoin car ton explication n'est pas toujours tres claire...

Dis moi.

Fréderic
 

Pièces jointes

Re : besoin de votre aide en vba Excel 2010 : boucle VBA

Bonjour FREDL,

Désolé de ne pas être clair, je vais tenter de récapituler :
Si dans VENTES, il y a une valeur, alors dans ETAT, la cellule doit etre égale à PROVISOIRE
Si dans VENTES, il y a une valeur, qui est égale à la valeur correspondante de l'onglet OBJECTIF, alors dans l'onglet ETAT, la cellule soit etre égale à OBJECTIF
Si dans VENTES, il n'y a aucune valeur, alors dans ETAT, tu peux mettre la cellule à VIDE (champ qu'on rajouterai au préalable dans chaque liste déroulante)

En fait ce qu'il faut comprendre, c'est que si il y a une valeur, alors avant d'attribuer l'état PROVISOIRE, on vérifie que la valeur ne soit pas égale à l'objectif (onglet OBJECTIF), car sinon, l'état doit alors être OBJECTIF

Je te remercie par avance de ton aide, et je m'escuse si je ne suis pas très clair pour toi


Cdt
Manrailou
 
Re : besoin de votre aide en vba Excel 2010 : boucle VBA

Bonjour FREDL,

un petit bug dans le dernier fichier joint ... si en VENTE, Janvier, Pain (cellule C8 de l'onglet VENTES) tu mets 12 ... dans ETATS, il affiche VIDE, alors qu'il devrait afficher PROVISOIRE

A part ce bug, le résultat me convient

As tu une explication au bug ?

En fait je teste dans l'onglet ventes plusieurs choses
Je vérifie que si je mets des valeurs différentes de l'objectif, il met PROVISOIRE
Je vérifie que si je mets des valeurs égales à l'objectif, il met OBJECTIF
Je vérifie que si j'ai aucune valeur il me met vide

Hors, en effectuant ces 3 tests, j'ai une erreur sur la cellule C8 de l'onglet VENTES
Va savoir pourquoi

Si tu peux faire ces tests chez toi, à effectuer les tests, tu verras, ça bugue sur cette cellule, j'ai pas encore testé toutes les cellules, mais les autres semblent fonctionner

En tout cas merci de ton aide, je sens qu'on abouti (enfin que TU abouti) 🙂

Cdt
Manrailou
 
Re : besoin de votre aide en vba Excel 2010 : boucle VBA

Bien,
la prochaine fois, sois plus précis sur ta demande, on perdra moins de temps.
j'avais extrapollé si > objectif : OBJECTIF (par erreur)
J'ai rectifié.
Par ailleurs, j'ai rajouté l'option de Fhoest pour que l'ecran ne scintille pas lorsque les macros tournent.

Sinon, tu ne veux pas un code couleur différent si "OBJECTIF"? (vert par ex)

Dis moi

A+
Frédéric
 

Pièces jointes

Re : besoin de votre aide en vba Excel 2010 : boucle VBA

Bonjour FREDL,

Merci de ton dernier fichier qui correspond tout à fait à ce que je souhaite pour le changement des états
En revanche la macro du père noel ne marche plus comme il faut, c'est plus embetant
En fait la macro du père noel doit affecter les couleurs en fonction des cellules dans ETATS ... à savoir :
Si valeur = objectif ou Provisoire, alors couleur = orange sur les onglets stat 1 et stat 2 pour les lignes appropriées

ça c'est déjà un point que j'aimerai déjà qu'on m'aide à résoudre

Après suite à ta demande, non, je n'ai pas d'autres souhait de couleur

.................


Ensuite, et pour finir (car je ne veux surtout pas t'embeter avec trop de demandes)
J'ai essayé de faire un code mais il n'est pas optimal et je me demandais si tu pouvais m'aider :


En fait le code est surement simple à raccourcir car il y a que 2 variables … à la rigueur, si vous pouvez tout « simplement » raccourcir par une variable le code présent ci-dessous, cela me suffirait pour comprendre la logique, et la reproduire

Le code en janvier et en février est identique, seuls 2 variables (de colonnes) changent


J’ai 2 variables (visible dans le code encadré ci-dessous) :

1ère variable = En janvier c’est D15 … qui se transforme en février en E15 … (et en mars se sera F15, en avril G15 …)

2ème variable = En janvier j’ai C7 … qui se transforme en février en D7 … (et en mars se sera E7, en avril F7 …)



Ce sont ces 2 variables de colonnes qu’il faudrait simplifier pour avoir un code unique, qui me traite de janvier à décembre, c'est-à-dire :

Pour la 1ère variable = de D15 (janvier) à O15 (décembre)

Pour la 2ème variable = de C7 (janvier) à N7 (décembre)

Surement une boucle qui dirait de reproduire 1 seul code (ce qui est écrit en janvier, en prenant compte des 2 variables) pour les lignes D15 à O15 et C7 à N7






Extrait du code :



' Janvier

If Sheets("Etat des ventes - canaux").Range("D15").Value = "Définitif" Then

End If



If Sheets("Etat des ventes - canaux").Range("D15").Value = "Provisoire" Then

If Sheets("Agences").Range("C7").Value > 0 Then

Sheets("Etat des ventes - canaux").Range("D15").Value = "Estim/Obj"

Else

End If

End If



If Sheets("Etat des ventes - canaux").Range("D15").Value = "Estim/Obj" And Sheets("Agences").Range("C7").Value = "" Then

Sheets("Etat des ventes - canaux").Range("D15").Value = "Provisoire"

End If



' Février

If Sheets("Etat des ventes - canaux").Range("E15").Value = "Définitif" Then

End If



If Sheets("Etat des ventes - canaux").Range("E15").Value = "Provisoire" Then

If Sheets("Agences").Range("D7").Value > 0 Then

Sheets("Etat des ventes - canaux").Range("E15").Value = "Estim/Obj"

Else

End If

End If



If Sheets("Etat des ventes - canaux").Range("E15").Value = "Estim/Obj" And Sheets("Agences").Range("D7").Value = "" Then

Sheets("Etat des ventes - canaux").Range("E15").Value = "Provisoire"

End If





Voila FREDL, si tu sais me simplifier ce code par le procédé de variable ... sans trop de code compliqué, et si possible toujours commenté en vert dans le code VBA.


Ton aide sur ce sujet est un peu mon cadeau de Noel car tout ce que je t'écris est pour un même fichier qui me tient à coeur

Merci de ton aide,

Promis une fois que j'ai les réponses aux 2 problèmes en suspens ... je ne t'embete plus

Et je te souhaite par avance, au cas ou, (t'as le droit de te reposer) de bonnes fêtes et je te remercie de ta générosité pour me venir en aide

Manrailou
 
Re : besoin de votre aide en vba Excel 2010 : boucle VBA

Bonjour,
pour le pere Noel, s'il ne fonctionne pas, lance la macro "ActualiserObjectifEtprovisoire" en manuel.
Je viens de la retester et elle fonctionne.
Ensuite pour ton 2eme besoin, voir la macro essai.

Dis moi.
Cdt
Frédéric
 

Pièces jointes

Re : besoin de votre aide en vba Excel 2010 : boucle VBA

Bonjour FREDL

Même si on se connait pas, je te présente mes meilleurs voeux
Merci de ton fichier, tout est désormais entièrement résolu et fonctionne comme je le souhaite
Je te remercie beaucoup pour ta patience et ton aide précieuse

Cela clôture donc mes demandes informatiques, je te remercie beaucoup

Par contre je ne sais pas si je dois clôturer cette page internet, je sais pas comment ça fonctionne, en tout cas mon problème est résolu

Merci, et bonne continuation

Manrailou
 
- 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

Discussions similaires

Réponses
5
Affichages
397
  • Question Question
Réponses
7
Affichages
295
Réponses
10
Affichages
969
Réponses
32
Affichages
1 K
Retour