Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Remplissage des cellule vides par le valeur ci-dessus

12 réponses
Avatar
Jimbo
Bonjour à toutes et à tous,

j'ai un problème avec un fichier CSV issu d'une base de donnée via le
logiciel Cognos. J'ai tous mes clients ainsi que le type de produit
consommé. Cependant, pour les types de produits, il ne répete pas le
libéllé du client donc un TCD devient impossible. Voir tableau ci-dessous :

3PARDATA Inc Audio
3PF Audio
4 GL Software Solutions Audio
4 Square Video
401konnect Com Inc Audio
Data
Rich Media
41 000 Feet Audio
42!40 ARCHITECTURE Inc Audio
Data
45 North Productions Audio
4GL School Solutions Audio
5280 Solutions Audio
Data
6CBE Audio
77th District Court Audio
7th Edition Audio
800 Onemail Inc Audio
Data


Dans le colonne du gauche, où la cellule est vide, je voudrais le remplir
avec la valeur qui est immediatement ci-dessus. Dans le cas de 800 Onemail
Inc par exemple au niveau de l'entrée "Data" je voudrais copier 800 Onemail
Inc.

Je pourrais le faire à la main mais comme il y a 50 000 lignes,
j'apprecierai vraiment si quelqu'un connait une fonction qui pourrait me le
faire!

Merci beaucoup de votre aide et bonne journée.

James

2 réponses

1 2
Avatar
Jimbo
merci Michel & Denis, en fait c'est vous avez dit, j'avais pas fait
attention au "Row -1" également dans <<If Range("A" & CELL.Row - 1).Value "" Then>> .

Bonne soirée à vous deux,

James



"Michel HOLDERITH" <#nospam# a écrit dans le message de
news:
euhhhhhh...
c'est correcte ?
Range("A" & CELL.Row).Value = Range("A" & CELL.Row - 1).Value
ce n'est pas plutot :
Range("A" & CELL.Row).Value = Range("B" & CELL.Row - 1).Value
@+
Michel.



"Jimbo" wrote in message
news:
désolé Michel,

une dernière question, voici la module finale :

Sub test()
Dim CELL As Range
For Each CELL In Range("B1", Range("b65000").End(xlUp))
CELL.Select
If Range("A" & CELL.Row - 1).Value = "" Then
If ActiveCell.Value = "Data" Or ActiveCell.Value = "Other" Or
ActiveCell.Value = "Rich Media" Then
Range("A" & CELL.Row).Value = Range("A" & CELL.Row - 1).Value
End If
End If
fin:
Next CELL
End Sub

je dois me tromper quelque part car j'ai un message d'erreur :

erreur d'éxecution '1004'
La méthode 'range' de l'objet'_Global' a échoué

Merci de ton aide,

James
"Jimbo" a écrit dans le message de
news:
Merci beaucoup Michel

"Michel HOLDERITH" <#nospam# a écrit dans le message de
news:%
juste une autre condition avant :

If range("A" & CELL.row-1).value = "" then
If ActiveCell.Value = "Data" or ActiveCell.Value = "Other" or
ActiveCell.Value = "blablabla" et.... Then

end if
end if
@+
Michel.

"Jimbo" wrote in message
news:%23ws$
excuses moi encore Michel, il faudrait également que le valeur de
la





cellule-1 dans colonne A soit copié vers la cellule en dessous à
condition


de cette dernière soit vide.

Merci

"Michel HOLDERITH" <#nospam# a écrit dans le message
de




news:
Salut,
a mettre dans une macro :

Sub test()
Dim CELL As Range
For Each CELL In Range("B1", Range("b65000").End(xlUp))
CELL.Select
If ActiveCell.Value = "Data" Then
Range("A" & CELL.Row).Value = Range("B" & CELL.Row - 1).Value
End If
fin:
Next CELL
End Sub

dis moi si ca te convient
@+
Michel.

"Jimbo" wrote in message
news:e3ji$
Bonjour à toutes et à tous,

j'ai un problème avec un fichier CSV issu d'une base de donnée
via






le
logiciel Cognos. J'ai tous mes clients ainsi que le type de
produit





consommé. Cependant, pour les types de produits, il ne répete
pas






le
libéllé du client donc un TCD devient impossible. Voir
tableau







ci-dessous
:

3PARDATA Inc Audio
3PF Audio
4 GL Software Solutions Audio
4 Square Video
401konnect Com Inc Audio
Data
Rich Media
41 000 Feet Audio
42!40 ARCHITECTURE Inc Audio
Data
45 North Productions Audio
4GL School Solutions Audio
5280 Solutions Audio
Data
6CBE Audio
77th District Court Audio
7th Edition Audio
800 Onemail Inc Audio
Data


Dans le colonne du gauche, où la cellule est vide, je voudrais
le






remplir
avec la valeur qui est immediatement ci-dessus. Dans le cas
de







800
Onemail
Inc par exemple au niveau de l'entrée "Data" je voudrais
copier







800
Onemail
Inc.

Je pourrais le faire à la main mais comme il y a 50 000
lignes,







j'apprecierai vraiment si quelqu'un connait une fonction qui
pourrait




me
le
faire!

Merci beaucoup de votre aide et bonne journée.

James




























Avatar
Daniel.M
Salut,

Fichier CSV ==> donc, il n'y a pas de formule.

Essaie cette procédure:

Sub RempliLesVides()
Dim Plg As Range
' Tu adaptes B1 pour le coin supérieur gauche de ton tableau
With Range("B1").CurrentRegion
On Error Resume Next
Set Plg = .SpecialCells(xlCellTypeBlanks)
On Error GoTo 0
If Not Plg Is Nothing Then
Plg.FormulaR1C1 = "=R[-1]C"
set Plg = Nothing
End If
.Value = .Value
End With
End Sub

Salutations,

Daniel M.

"Jimbo" wrote in message
news:e3ji$
Bonjour à toutes et à tous,

j'ai un problème avec un fichier CSV issu d'une base de donnée via le
logiciel Cognos. J'ai tous mes clients ainsi que le type de produit
consommé. Cependant, pour les types de produits, il ne répete pas le
libéllé du client donc un TCD devient impossible. Voir tableau ci-dessous :

3PARDATA Inc Audio
3PF Audio
4 GL Software Solutions Audio
4 Square Video
401konnect Com Inc Audio
Data
Rich Media
41 000 Feet Audio
42!40 ARCHITECTURE Inc Audio
Data
45 North Productions Audio
4GL School Solutions Audio
5280 Solutions Audio
Data
6CBE Audio
77th District Court Audio
7th Edition Audio
800 Onemail Inc Audio
Data


Dans le colonne du gauche, où la cellule est vide, je voudrais le remplir
avec la valeur qui est immediatement ci-dessus. Dans le cas de 800 Onemail
Inc par exemple au niveau de l'entrée "Data" je voudrais copier 800 Onemail
Inc.

Je pourrais le faire à la main mais comme il y a 50 000 lignes,
j'apprecierai vraiment si quelqu'un connait une fonction qui pourrait me le
faire!

Merci beaucoup de votre aide et bonne journée.

James




1 2