Activer une cellule avec VBA

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

kikouillou

XLDnaute Nouveau
Bonjour à tous, je suis novice en VBA et n'ai pas tout le vocabulaire. C'est sûrement pourquoi je n'ai pas réussi à trouver de réponse à mon problème dans les discussions précédente. Celui-ci est le suivant:

Via une interface réalisé avec VBA, j'enregistre des chiffres dans un tableau. Dans ce tableau, j'effectue des moyennes des chiffres saisis. Les données que je rentre par VBA sont enregistré dans des cellules qui ne sont pas sous format texte (une erreur s'affiche et on me propose de convertir en nombre). Ceci fait que les moyennes ne se calculent pas directement. Il faut que je doucle-clic dans chaque case pour que ma moyenne s'actualise. J'aimerais ne plus avoir à le faire.
J'ai essayé d'enregistrer une macro qui double-clic dans chaque case mais ça ne marche pas (ça m'enregistre la valeur que la cellule contient alors que je v"eux juste rentrer dans la cellule pour l'activer)

Quelqu'un aurait-il une solution s'il vous plait.

Par avance merci,

Cordialement
 
Re : Activer une cellule avec VBA

Bonjour Kikouillou et bienvenue sur ce forum 😉

Le mieux, je pense serais d'inscrire tes valeurs en format nombre
Quel code utilises-tu pour les inscrire ?

A+
 
Re : Activer une cellule avec VBA

Bonjour Bruno et merci de ta réactivité.

Je ne connais pas le nom du code que j'utilise mais en voici un extrait:

Private Sub CommandButton2_Click()
Sheets("ST").Select
Range("a6").Select

Do While ActiveCell <> ""
ActiveCell.Offset(1, 0).Activate
Loop

If IsNumeric(ActiveCell.Offset(-1, 0)) Then

ActiveCell = ActiveCell.Offset(-1, 0) + 1

Else
ActiveCell = 1



J'ai mis les cellules dans lesquels les valeurs arrivent au format nombre mais ça ne change rien. C'est au niveau de la programmation que je n'arrive pas à les faire passer à ce format.
 
Re : Activer une cellule avec VBA

Pour être plus précis. Après ma boucle de selection de cellule, jai ceci:

ActiveCell.Offset(0, 1) = FrmProduit.Initiales
ActiveCell.Offset(0, 2) = FrmProduit.Prix
ActiveCell.Offset(0, 3) = FrmProduit.Qualité
ActiveCell.Offset(0, 4) = FrmProduit.Sécurité
ActiveCell.Offset(0, 5) = FrmProduit.Réactivité
ActiveCell.Offset(0, 6) = FrmProduit.Délais
ActiveCell.Offset(0, 8) = FrmProduit.Commentaire

FrmProduit.Initiales = ""
FrmProduit.Prix = ""
FrmProduit.Qualité = ""
FrmProduit.Sécurité = ""
FrmProduit.Réactivité = ""
FrmProduit.Délais = ""
FrmProduit.Commentaire = ""


Je pense que c'est ici que je dois modifier ou ajouter quelque chose mais je ne sais pas quoi ni où?!
 
Re : Activer une cellule avec VBA

Re,

Pour l'inscription des valeurs numériques
Code:
ActiveCell.Offset(0, 3) = CDec(FrmProduit.Qualité)


Pour transformer des chiffres format texte en format nombre
1) tu saisis le chiffre 1 dans une cellule
2) tu copie ce chiffre
3) tu sélectionnes toutes les cellules que tu as besoin de transformer
4) Edition -> Collage Spécial -> Choix 1 :
Valeur​
- Choix 2 :
Par Multiplication​


A+
 
Re : Activer une cellule avec VBA

Bonsour®
Pour être plus précis. Après ma boucle de selection de cellule, jai ceci:

ActiveCell.Offset(0, 1) = FrmProduit.Initiales
ActiveCell.Offset(0, 2) = FrmProduit.Prix
ActiveCell.Offset(0, 3) = FrmProduit.Qualité
ActiveCell.Offset(0, 4) = FrmProduit.Sécurité
ActiveCell.Offset(0, 5) = FrmProduit.Réactivité
ActiveCell.Offset(0, 6) = FrmProduit.Délais
ActiveCell.Offset(0, 8) = FrmProduit.Commentaire

FrmProduit.Initiales = ""
FrmProduit.Prix = ""
FrmProduit.Qualité = ""
FrmProduit.Sécurité = ""
FrmProduit.Réactivité = ""
FrmProduit.Délais = ""
FrmProduit.Commentaire = ""


Je pense que c'est ici que je dois modifier ou ajouter quelque chose mais je ne sais pas quoi ni où?!

toutes les infos issues d'une saisie via userform sont de type texte
il convient donc de typer ces infos en fonction des reprsentations souhaitées...
ex :

ActiveCell.Offset(0, 2) = cDbl(FrmProduit.Prix)
ActiveCell.Offset(0, 6) = cDate(FrmProduit.Délais) ' si le délai est une durée sinon Cint ou CDbl)

Attention il faudra certainement aussi vérifier le séparateur décimal, gerer les erreurs en cas de saisie alpha en place de numérique)
sinon M****In-M****Out 🙁
 
- 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
12
Affichages
624
Réponses
4
Affichages
250
Réponses
32
Affichages
981
Retour