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

Compléter les cellules vides d'un tableau (VBA)

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

F

FAB80170

Guest
Bonsoir,

je souhaiterais compléter les cellules vides d'une plage de données (en VBA) > (voir fichier pour exemple)

Si cellule vide, prendre la valeur de la cellule de gauche, ainsi si la macro respecte l'ordre des colonnes,
la cellule vide trouvera toujours une valeur sur sa gauche dans la plage sélectionnée.

??? eum, eum ...

Par avance merci.
 

Pièces jointes

Bonjour à tous,

d'après l'exemple de Hieu, à adapter.

VB:
Option Explicit
Sub Test()
Dim lig As Long, j As Long, i As Long

With Feuil1
lig = .Range("a" & Rows.Count).End(xlUp).Row
For j = 1 To 22
    For i = 2 To lig
        If IsEmpty(.Range("a" & i).Offset(0, j)) Then  _
.Range("a" & i).Offset(0, j) = .Range("a" & i).Offset(0, j - 1)
    Next i
Next j
End With
End Sub
 
Dernière édition:
Bonjour J(enais) M(arre) 😀 😀 😀

Oui, mais faudrais ajouter le nombre de colonnes (22).

VB:
Option Explicit
Sub a()
Dim lig As Long, i As Long, col As Long
Application.ScreenUpdating = False
On Error Resume Next
With Feuil1
lig = .Cells(Rows.Count, 1).End(xlUp).Row
For col = 2 To 22
For i = 2 To lig
.Rows(i).SpecialCells(xlCellTypeBlanks) = "=RC[-1]"
Next i
Next col
End With
With ActiveSheet.UsedRange: .Value = .Value: End With
End Sub
 
Dernière édition:
Bonjour à tous,
la macro proposé par Hieu me convenait d'avantage que celle de Staple1600 car elle renvoyé des valeur absolues et non des calculs.
Je vous envoi une partie de mon fichier source; avec une plage modifiée et cette fois-ci un décalage à gauche de 3 cellules;
à savoir, pour exemple, si 1P_S1HT (N37), je dois aller chercher 1p_BENCHHT (K37) > renvoi la cellule située à gauche avec un décalage 3 ... soit la valeur de 66.33 €
Est-ce que ces explications sont compréhensibles ?

Par avance MERCI.
 

Pièces jointes

Bonjour à tous

Arf pas vu la modif d'enoncé !!!!

A tester
Code:
Sub remplir()
tablo = Range("A1").CurrentRegion
For n = LBound(tablo, 1) To UBound(tablo, 1)
  For m = LBound(tablo, 2) + 1 To UBound(tablo, 2)
     If tablo(n, m) = "" Then
        tablo(n, m) = tablo(n, m - 1)
     End If
  Next
Next
Range("A1").Resize(UBound(tablo, 1), UBound(tablo, 2)) = tablo
End Sub
 
Bonjour pierrejean 🙂

Et oui, les fameux Tableaux. Sans eux, ça ne servirait à rien d'aller à l'école.
Sinon à l'école on devrait chanter: " On écrit sur les murs calculs et graffitis" 😉 😀
 
Dernière édition:
- 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

Réponses
10
Affichages
581
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…