Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Remplir une colonne B suivant valeur de la colonne C

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

K

kenavo

Guest
Bonjour,

Je cherche à faire une macro qui me permettrait de remplir une colonne B suivant les valeurs de la colonne A
Je m explique dans une colonne A j'ai des noms
toto
martin
toto
Dans la colonne B je souhaite remplir automatique : si Toto alors mettre 10 a toto les ligne toto, si Martin mettre 60....
Je souhaite faire cela car c'est un fichier extrait d' une base de données mais le champ nom à affecter ne figure pas dedans
Cf piece jointe

Merci d' avance
 

Pièces jointes

Re : Remplir une colonne B suivant valeur de la colonne C

Bonjour,

C'est aussi faisable par formule :

B2 :
Code:
=Si(A2;"";"";CHOISIR(EQUIV(A2;{"toto";"max";"martin";"titi"};0);10;11;15;60))
à copier vers le bas.
 
Re : Remplir une colonne B suivant valeur de la colonne C

Merci ta proposition marche très bien, mais je souhaiterais inserer une macro dans mon projet afin de tout automatisé
Mais je garde précieusement ta solution
 
Re : Remplir une colonne B suivant valeur de la colonne C

Bonjour kenavo, salut hoerwind,

J'aime bien la formule d'hoerwind, pourquoi ne pas l'utiliser en VBA :

Code:
Sub EntrerValeurs()
Dim F As String, plage As Range
F = "=IF(RC1="""","""",CHOOSE(MATCH(RC1,{""toto"";""max"";""martin"";""titi""},0),10,11,15,60))"
Set plage = Range("A2", Range("A65536").End(xlUp))
With plage.Offset(, 1)
  .FormulaR1C1 = F
  .Value = .Value 'supprime les formules
End With
End Sub

Cette manière de faire est très rapide car pas de boucle...

A+
 
Re : Remplir une colonne B suivant valeur de la colonne C

Bojour,

juste une petite chose, comment faire pour lui dire dans quelle feuille la macro soit s'executer, dans mon cas ce n'est pas la feuil1 mais une feuille nommé sheet1 ( feuille nome ainsi lors d l'extration des données ( je ne veux pasmodifier son nom))
Le code est dans un module et non dans la feuille, qd il est ds module1 je n'arrive pas à le faire marcher
Bonne fin de WE
 
Dernière modification par un modérateur:
Re : Remplir une colonne B suivant valeur de la colonne C

Bonsoir kenavo,

Dans un module, le code précédent fonctionne si Sheet1 est la feuille active.

On peut l'activer en début de macro par Sheets("Sheet1").Activate

Sinon, préciser la feuille ainsi :

Code:
Sub EntrerValeurs()
Dim F As String
F = "=IF(RC1="""","""",CHOOSE(MATCH(RC1,{""toto"";""max"";""martin"";""titi""},0),10,11,15,60))"
With Sheets("Sheet1").Range("B2:B" & Sheets("Sheet1").Range("A65536").End(xlUp).Row)
  .FormulaR1C1 = F
  .Value = .Value 'supprime les formules
End With
End Sub

J'en ai profité pour simplifier en n'utilisant pas la variable plage.

A+
 
Re : Remplir une colonne B suivant valeur de la colonne C

Re,

Peut-être faut-il préciser aussi le classeur :

Code:
Sub EntrerValeurs()
Dim F As String
F = "=IF(RC1="""","""",CHOOSE(MATCH(RC1,{""toto"";""max"";""martin"";""titi""},0),10,11,15,60))"
With ThisWorkbook.Sheets("Sheet1")
  With .Range("B2:B" & .Range("A65536").End(xlUp).Row)
    .FormulaR1C1 = F
    .Value = .Value 'supprime les formules
  End With
End With
End Sub

A+
 
Re : Remplir une colonne B suivant valeur de la colonne C

Bonsoir


Pour le plaisir de croiser du beau linge xldien 😉

Une autre façon d'écrire
VB:
Sub a4Fun()
Dim c As Range, t
t = [{"toto","max","martin","titi"}]
For Each c In Columns(1).SpecialCells(xlCellTypeConstants, 23)
c.Offset(, 1) = Choose(Application.Match(c, t, 0), 10, 11, 15, 60)
Next
End Sub

PS: kenavo
Tu devrais modifier ton titre en:
Remplir une colonne B suivant valeur de la colonne A , non 😉 ?
 
Dernière édition:
Re : Remplir une colonne B suivant valeur de la colonne C

Bonjour,
Merci beaucoup!!

Ma macro est ok maintenant et marche comme je voulais : complète ma colonne et me génére un tableau croisé

Bonne journée à tous et toutes
 
Dernière modification par un modérateur:
Re : Remplir une colonne B suivant valeur de la colonne C

Bonjour,

Je ne comprends pas pourquoi alors que je n'ai modifié que mes critères ({""BTP"";""BMCO"";""PMX"";""BPOP"";""MTTP"";""FRDF"";""FFT"";""ESF"";""""},0),11 650 252,07 050 252,36 000 252,53 332 252,24 152 252, 56 500 S52,79 100 252,86 100 252))" et maintenant j'ai une erreur sur la ligne :
.formulaR1C1

mon code :
Code:
Sub EntrerValeurs()
Dim F As String
F = "=IF(RC3="""","""",CHOOSE(MATCH(RC3,{""BTP"";""BMCO"";""PMX"";""BPOP"";""MTTP"";""FRDF"";""FFT"";""ESF"";""""},0),11 650 252,07 050 252,36 000 252,53 332 252,24 152 252, 56 500 S52,79 100 252,86 100 252))"
With Sheets("Sheet1").Range("O2:O" & Sheets("Sheet1").Range("A65536").End(xlUp).Row)
  .FormulaR1C1 = F
  .Value = .Value 'supprime les formules
End With
End Sub

Je ne comprends pas comment marche formulaR1C1...

Bon WE
 
Dernière modification par un modérateur:
Re : Remplir une colonne B suivant valeur de la colonne C

Ok l'erreur venait des espaces et d' une lettre dans un code!!
11 650 252,07 050 252,36 000 252,53 332 252,24 152 252, 56 500 S52,79 100 252,86 100 252

Problème réglé grâce aux doubles quote : ""52S85""

Et je vais tt de même chercher une aide sur formulaR1C1....

Bon après midi à toutes et tous
 
Dernière modification par un modérateur:
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…