XL 2010 Macro Dupliquer valeur suivi d'un index

Sandrine123

XLDnaute Nouveau
Bonjour,

Je souhaiterais votre aide pour une macro excel.

Tout se joue sur la première ligne du fichier.
A partir de la colonne E, j'ai des valeurs suivi de colonne vide.

La macro doit reprendre la première valeur trouvée (ici 45H"), elle doit transformer cette valeur en "45H 1", puis écrire sur les 10 colonnes suivantes : "45H 2"," 45H 3", "45H 4" etc...
jusqu'à la prochaine valeur et ainsi de suite (80P 1, 80P 2 etc)

Merci pour votre aide.

Bonne journée.
 

Pièces jointes

  • Classeur3.xlsm
    8.7 KB · Affichages: 30

zebanx

XLDnaute Accro
Bonjour Dranreb, bonjour Sandrine.

Petit code sympathique à enregistrer.
J'ai essayé de l'adapter avec les lignes mais il me met une erreur "1004".
Dranreb, pourrais-tu s'il te plait nous donner le code pour remplir les lignes en partant de la même cellule E1 sur un step de 10 lignes ?

Merci par avance et bonne journée.
thierry

----
essai sur
Sub remplir_LigVides()
Dim R As Range
Set R = ActiveSheet.[E1]
Do Until IsEmpty(R.Value)
R.Resize(10, ).FormulaR1C1 = "=""" & R.Value & R.Row
Set R = R.Offset(10, ): Loop
End Sub
 

zebanx

XLDnaute Accro
Re-bonjour,

Merci pour ta célérité... mais toujours en erreur.
Ci-joint le fichier pour correction dans le module directement (stp).

Je t'en remercie par avance -)
 

Pièces jointes

  • code_remplir cellules vides.xlsm
    12.3 KB · Affichages: 23

Dranreb

XLDnaute Barbatruc
VB:
Sub remplir_LigVides()
Dim R As Range
Set R = ActiveSheet.[E1]
Do Until IsEmpty(R.Value)
   R.Resize(10, 1).FormulaR1C1 = "=""" & R.Value & " ""&ROW()-" & R.Row - 1
   Set R = R.Offset(10, 0): Loop
End Sub
Ou bien, pour omettre la colonne ou le nombre de colonnes, ne pas mettre de virgule :
VB:
Sub remplir_LigVides()
Dim R As Range
Set R = ActiveSheet.[E1]
Do Until IsEmpty(R.Value)
   R.Resize(10).FormulaR1C1 = "=""" & R.Value & " ""&ROW()-" & R.Row - 1
   Set R = R.Offset(10): Loop
End Sub
 

Dranreb

XLDnaute Barbatruc
On peut aussi les écrire comme ça, si on préfère :
VB:
Sub remplir_colVides()
Dim R As Range
Set R = ActiveSheet.[E1]
Do Until IsEmpty(R.Value)
   R.Resize(, 10).FormulaR1C1 = "=""" & R.Value & " ""&COLUMNS(RC" & R.Column & ":RC)"
   Set R = R.Offset(, 10): Loop
End Sub
Sub remplir_LigVides()
Dim R As Range
Set R = ActiveSheet.[E1]
Do Until IsEmpty(R.Value)
   R.Resize(10).FormulaR1C1 = "=""" & R.Value & " ""&ROWS(R" & R.Row & "C:RC)"
   Set R = R.Offset(10): Loop
End Sub
 

zebanx

XLDnaute Accro
Ah oui.. c'est bien aussi de cette manière.
Vraiment utile pour compléter les cellules vides avec pas d'incrémentation sur des codes qui doivent être rapides à exécuter. Je vais faire un test sur quelques milliers de lignes pour voir.
:)

edit : très rapide. Parfait!
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 941
Membres
101 847
dernier inscrit
Djigbenou