Comment combler les vides colonne A au niveau de la colonne B ?

CG2000

XLDnaute Occasionnel
Bonjour à toute et à tous !

Voici mon problème, j'ai un tableau qui a un nombre de lignes variables (qui change en contenu plusieurs fois par jours).
Dans la colonne B la dernière cellule non vide correspond bien à la fin de mon tableau, par contre en colonne A il y a des cellules vides, je recherche un moyen de completer les cellules vides de cette colonne A et de m'arreter au niveau des non vides de la colonne b.

Par exemple dans mon tableau (qui a un nombre de lignes variables), si dans la colonne B la dernière cellule non vide est en B25 alors completer les cellules en colonne A jusqu'à A25 avec la dernière info connue.

Voici un exemple en pièce jointe qui est beaucoup plus parlant je pense.

Merci d'avance pour vos réponses

CG2000
 

Pièces jointes

  • CompleterVides.xls
    14.5 KB · Affichages: 57

Staple1600

XLDnaute Barbatruc
Re : Comment combler les vides colonne A au niveau de la colonne B ?

Bonjour CG2000, le fil, le forum


Voici une possibilité
Code:
Sub rvides()
[COLOR=Green]'Déclarations[/COLOR]
Dim p As Range, dl&
[COLOR=Green]'definit la dernière ligne[/COLOR]
dl = [B65536].End(xlUp).Row
[COLOR=Green]'définit la plage de cellules à traiter[/COLOR]
Set p = [A1].Resize(dl)
[COLOR=Green]'remplissage des cellules vides[/COLOR]
With p
    .SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
    .Value = .Value
End With
Set p = Nothing
End Sub
 
Dernière édition:

CG2000

XLDnaute Occasionnel
Re : Comment combler les vides colonne A au niveau de la colonne B ?

Champion, très Champion STAPLE1600
Tests OK. :p

j'étais sur la piste de :

https://www.excel-downloads.com/thr...cellules-vide-jarrive-pas-a-etre-clair.82648/


Le code de skoobi travail bien mais ne complète pas la fin du tableau (colonne A)

Code:
Sub test()
For Each cellule In Range(Range("a1"), Range("a65536").End(xlUp))
    If cellule <> "" Then
        nouv = cellule.Value
    Else
        cellule.Value = nouv
    End If
Next
End Sub

Avec ta solution le fil est clos pour moi.

Bonne journée à tous et Merci(s) infiniment STAPLE1600.
 

david84

XLDnaute Barbatruc
Re : Comment combler les vides colonne A au niveau de la colonne B ?

Bonjour salut staple,
Le code de skoobi travail bien mais ne complète pas la fin du tableau (colonne A)

Code:

Sub test()
For Each cellule In Range(Range("a1"), Range("a65536").End(xlUp))
If cellule <> "" Then
nouv = cellule.Value
Else
cellule.Value = nouv
End If
Next
End Sub

En le modifiant de la sorte cela semble fonctionner :
Le code de skoobi travail bien mais ne complète pas la fin du tableau (colonne A)

Sub test()
For Each cellule In Range("A1").CurrentRegion.Resize(, 1)
If cellule <> "" Then
nouv = cellule.Value
Else
cellule.Value = nouv
End If
Next
End Sub
A+
 

CG2000

XLDnaute Occasionnel
Re : Comment combler les vides colonne A au niveau de la colonne B ?

Re-bonjour le Forum, bonjour à tous,

Merci à vous deux de continuer le fil.:p
En effet david84 après essai ta solution fonctionne également;
Mais celle de STAPLE1600 évite l'emploi d'une boucle.

De toute façon je garde les deux solutions et merci(s) à vous deux pour le sérieux de vos réponses.
Bonne journée.


CG2000
 

david84

XLDnaute Barbatruc
Re : Comment combler les vides colonne A au niveau de la colonne B ?

Re
merci de l'info staple. Je poste sur des discussions VBA pour essayer de comprendre le vba et me faire conseiller au besoin par rapport aux réponses que je fournis, donc merci.
A+
 

Staple1600

XLDnaute Barbatruc
Re : Comment combler les vides colonne A au niveau de la colonne B ?

Re

david84
Je poste sur des discussions VBA pour essayer de comprendre le vba
D'après tes réponses sur différents fils que j'ai pu lire, tu es loin d'être en débutant en VBA, ou alors tu apprends très vite ;)

CG2000
La meilleure des solutions c'est celle que tu aimes ;)
( Le VBA c'est un peu comme les élu(es) de nos cœurs ...)
 

Discussions similaires

Statistiques des forums

Discussions
312 545
Messages
2 089 454
Membres
104 169
dernier inscrit
alain_geremy