Microsoft 365 Remplacement des cellules non vides par contenu d'une colonne

SwimCoachNico79

XLDnaute Occasionnel
Bonjour le forum,

Dans le tableau joint je cherche à remplacer ligne par ligne toutes les cellules non vides (où identifiées par "1") de mes 35 colonnes par le code contenu dans la colonne "A".

Exemple :
ligne 2 modifier toutes les cellules non vides (où identifiées par "1") par AAA_01
ligne 22 modifier toutes les cellules non vides (où identifiées par "1") par BBB_14
et ainsi de suite.

Infos :
Le nombre de ligne peut augmenter et le nombre de cellules non vides (où identifiées par "1") par ligne peut être soumis à changement.

Est-ce possible par une formule ? Un code VBA ?

SCN79
 

Pièces jointes

  • Exemple.xlsx
    26.4 KB · Affichages: 13

Staple1600

XLDnaute Barbatruc
Bonjour,

Si j'ai bien compris
VB:
Sub Macro4()
Dim rng As Range
Application.ScreenUpdating = False
Set rng = Range("B2:AI156").SpecialCells(xlCellTypeConstants, 1)
rng.FormulaR1C1 = "=RC1"
Range("B2:AI156") = Range("B2:AI156").Value
End Sub
 

SwimCoachNico79

XLDnaute Occasionnel
Bonjour,

Si j'ai bien compris
VB:
Sub Macro4()
Dim rng As Range
Application.ScreenUpdating = False
Set rng = Range("B2:AI156").SpecialCells(xlCellTypeConstants, 1)
rng.FormulaR1C1 = "=RC1"
Range("B2:AI156") = Range("B2:AI156").Value
End Sub
Merci bcp Staple1600.
Dernière chose, comment écrire le code si plus de 156 ligne à mon tableau ? Faut il que je modifie le code à chaque fois où y a t il une possibilité d'intégrer une code qui prend jusque à la dernière ligne non vide (code de colonne A par exemple) ?
SCN79
 

Staple1600

XLDnaute Barbatruc
Re

Essaies avec cette variation
VB:
Sub Macro5()
Dim rng As Range, p As Range
Set rng = Cells(1).CurrentRegion
Set p = rng.Offset(1, 1).Resize(rng.Rows.Count - 1, rng.Columns.Count - 1)
p.SpecialCells(xlCellTypeConstants, 1).FormulaR1C1 = "=RC1"
p = p.Value
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof