Renseigner les n cellules de deux colonnes
Bonjour à tous,
Je dispose d'EXCEL 2010.
J'ai fait une feuille de calcul qui traite deux colonnes de n cellules. 200 cellules sont réservées pour chacune des colonnes.
Je voudrais à présent choisir à ma guise le nombre n de cellules nécessaires par colonne.(x1 est en H4 et Y1 en I4).
La machine me demande le nombre n de couples de mesures (xi;yi) qu'elle devra traiter. J'entre n. La machine matérialise les n cellules de caque colonne à partir de H4 et I4 et les colorie en jaune clair. Ensuite je peux renseigner tout de suite ces 2*n cellules.
Une MSGBOX et un bouton bien codé devraient suffire en VBA mais je ne maîtrise pas encore assez.
Pouvez-vous m'aider?
Amicalement.
Bernard.
Bonjour,
1re solution :
Sub N_Cellules()
Dim Rep As Integer
Dim rg As Range
Rep = InputBox("Nombre de cellules à renseigner ?", "Nombre de cellules à renseigner", 0)
'vérifier la réponse (optionnel)
If Rep > 200 Then
MsgBox ("Le nombre de cellules doit être inférieur à 200")
Exit Sub
End If
'mettre la couleur
Set rg = ActiveSheet.Range("H4") '<-On change la cellule de départ ici
With rg
Set rg = Range(rg, rg.Offset(Rep, 1))
End With
rg.Interior.ColorIndex = 36
End Subou encore :
Sub N_Cellules2()
Dim Rep As Integer
Dim rg As Range
Rep = InputBox("Nombre de cellules à renseigner ?", "Nombre de cellules à renseigner", 0)
'vérifier la réponse (optionnel)
If Rep > 200 Then
MsgBox ("Le nombre de cellules doit être inférieur à 200")
Exit Sub
End If
'mettre la couleur
ActiveSheet.Range("H4:I" & Rep + 4).Interior.ColorIndex = 36
End SubLa vérification de la réponse est optionnelle, tu peux l'enlever si tu veux.
La 1re solution à l'avantage que si tes cellules ne commencent plus en H4, alors le code est moins long à modifier. Tu pourrais aussi créer un champ nommé en H4 et de cette façon ta macro serait utilisable sans avoir à la modifier à chaque fois.
Exemple, si tu crées le champ nommé "CelluleDépart" en H4, tu peux remplacer : Set rg = ActiveSheet.Range("H4")
par Set rg = ActiveSheet.Range("CelluleDépart")