Renommer une colonne selon une condition d'une autre colonne

Halo31200

XLDnaute Nouveau
Bonjour,

j'essaye depuis quelques jours d'effectuer un macro sur Excel 2010 pour renommer des cellules d'une colonne mais je bloque.
La colonne que je veux renommer est la colonne B.
En gros dans la colonne B j'ai des chiffres aléatoires (1,2,3,50,67,78,98 etc.)
Ce que je veux c'est de pouvoir remplacer ces chiffres aléatoires par des chiffres spécifiques.
Pour savoir qu'elle chiffre je dois mettre il faut que je regarde ma colonne F.
Si dans ma colonne F et de la ligne f2:f27 j'ai le chiffre 4 alors il faut que dans ma colonne B et de la ligne b2:b27 il renomme de 1 à 26.
J'avais testé ceci mais cela ne marche pas car j'ai mes chiffres dans la colonne B qui change et ne sont pas tous le temps même :

Sub Export_Quiz()
Dim cell As Range
Application.ScreenUpdating = False
For Each cell In Range("B2:B12121")
If cell.Value = "50" Then
cell.Value = "1"
End If
Next
Range("E35").Select
End Sub



Est ce que vous auriez une idée de si c'est possible de le faire ou pas ?
Je vous remercie en avance.
J'espère que cela est compréhensible, en PJ je vous joints mon document pour y voir plus clair.

Anthony
 

Pièces jointes

  • Classeur1.xlsx
    228.2 KB · Affichages: 37
  • Classeur1.xlsx
    228.2 KB · Affichages: 60
  • Classeur1.xlsx
    228.2 KB · Affichages: 45

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Renommer une colonne selon une condition d'une autre colonne

Bonjour Anthony, et bienvenue sur le forum

Renommer une colonne

je pense que le titre est mal choisi, il ne s'agit pas de renommer une colonne mais plutôt d'incrémenter des valeurs dans une colonne


Si dans ma colonne F et de la ligne f2:f27 j'ai le chiffre 4 alors il faut que dans ma colonne B et de la ligne b2:b27 il renomme de 1 à 26.

je suppose que pour chaque changement de valeur en colonne F, il faut recommencer le comptage à 1

voir fichier joint

à+
Philippe
 

Pièces jointes

  • 111.xlsm
    233.9 KB · Affichages: 50
  • 111.xlsm
    233.9 KB · Affichages: 56
  • 111.xlsm
    233.9 KB · Affichages: 47
Dernière édition:

Halo31200

XLDnaute Nouveau
Re : Renommer une colonne selon une condition d'une autre colonne

Bonjour Laurent,

merci pour votre aide.
C'est vrai que je ne savais pas vraiment comment appeler ce que je voulais faire.

J'ai vu votre fichier et c'est exactement ce que je veux faire.
Par contre lorsque j’exécute la macro, il me change bien les valeurs de la colonne B par rapport à celle de F mais par contre dès qu'elle rencontre la même donnée dans la colonne F, il ne change pas la valeur dans la colonne B.

J'ai essayé de faire une boucle mais il ne veut pas la prendre.

Merci

Anthony
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Renommer une colonne selon une condition d'une autre colonne

Re,

.......... mais par contre dès qu'elle rencontre la même donnée dans la colonne F, il ne change pas la valeur dans la colonne B.
et pourtant il y a bien changement en colonne B

je pense qu'une fois de plus la demande manque de précision :mad::mad::mad:

le chiffre 4 est présent en colonne F de la ligne 2 à la ligne 27
le chiffre 4 est présent en colonne F de la ligne 86 à la ligne 11
le chiffre 4 est présent en colonne F de la ligne 224 à la ligne 249

en colonne B on a donc:
des valeurs croissantes 1 .............. 26 (de la ligne 2 à la ligne 27)
des valeurs croissantes 27 .............. 52 (de la ligne 86 à la ligne 111)
et des valeurs croissantes 53 .............. 78 (de la ligne 224 à la ligne 249)
puisque le 4 est présent 78 fois en colonne F

si l'incrémentation des valeurs en colonne B doit repartir à 1 pour chaque changement de groupe de valeurs en colonne F
il faut remplacer le code par celui-ci

Code:
Sub Bouton1_Clic()
Application.ScreenUpdating = False
Dim t(1 To 10)
For i = 2 To Range("F65535").End(xlUp).Row
t(Cells(i, 6)) = t(Cells(i, 6)) + 1
Cells(i, 2) = t(Cells(i, 6))
If Cells(i + 1, 6) <> Cells(i, 6) Then t(Cells(i, 6)) = 0
Next i
Application.ScreenUpdating = True
End Sub

à+
Philippe
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Renommer une colonne selon une condition d'une autre colonne

Re,

ou plus simplement avec ce code:
Code:
Sub Bouton1_Clic()
Application.ScreenUpdating = False
Dim t
For i = 2 To Range("F65535").End(xlUp).Row
t = t + 1
Cells(i, 2) = t
If Cells(i + 1, 6) <> Cells(i, 6) Then t = 0
Next i
Application.ScreenUpdating = True
End Sub

à+
Philippe
 

Discussions similaires

Statistiques des forums

Discussions
312 342
Messages
2 087 436
Membres
103 545
dernier inscrit
agent3