Décaler et remplacer si la case et vide

Anushkafi -  
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
je cherche a faire une formule qui me renvoie les données d'une colonne de 2 lignes, la première ligne est le code, la 2ème est la somme. Donc je cherche la bonne formule qui me prend juste les valeurs <> de 0 mais sans me laisser de case vide.
le premier tableau est ma base de donnée avec 2 lignes et plusieurs colonnes, le 2ème tableau doit m'afficher le résultat final sans prendre en considération la colonne avec la case 0, et sans me laisser une case vide.
j'ai essayé cette formule mais ca ne marche pas:
=SI(FB1<>0;B1;n+1)
et en plus je n'arrive pas a prendre le code qui va avec le bon chiffre.

si vous pouriez m'aider ce la me fera un grand plaisir et me permettra d'avancer sur mon travail.
je vous remercie d'avance.
ciao
Anushka

A voir également:

2 réponses

eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Bonjour,

Pas claire ton explication...
Fais un fichier exemple de qcq lignes de données avec ce que tu veux et où.
Dépose-le sur cijoint.fr et colle ici le lien fourni
eric
0
anushkafi
 
Bonjour eriic,
voici donc un exemple;

Base de donnée
Code TE01 TE30 TE53 TE56 T90 T12 T23
Montant 100 0 23 0 0 3 0

Résultat recherché
Code TE01 TE53 T12
Montant 100 23 3

Ma question est: de ne pas afficher les colonnes avec les montants 0.

Merci pour ton aide, j'apprécis beaucoup.
ciao
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Je pense que ça sera plus simple en vba.
Tu veux inscrire la liste réduite à un autre emplacement ou supprimer les cellules inutiles ?
0
anushka
 
je veux juste déplacer la liste sur une autre feuille sans les colonnes avec la valeur 0.
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Bonsoir,

Adapte source et dest en fonction de ton besoin.
La macro partira de source et traitera en horizontal jusqu'à ce qu'elle rencontre une cellule vide.
Sub CopieSans0()
    Dim source As Range, dest As Range, c As Range, col As Long
    'cellule supérieure gauche des données source
    Set source = Worksheets("Feuil1").[A2]
    'cellule supérieure gauche de la destination
    Set dest = Worksheets("Feuil2").[A2]
    col = 0
    For Each c In Range(source, source.End(xlToRight))
        If c.Offset(1, 0) <> 0 Then
            dest.Offset(0, col) = c.Value
            dest.Offset(1, col) = c.Offset(1, 0).Value
            col = col + 1
        End If
    Next c
End Sub


eric
0
anushka
 
bonjour,
merci pour ta proposition, mais je ne sais pas travailler avec les macros, si possible d'avoir une formule dans le même style mais sur excel.

merci d'avance.
anushka
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Bonjour,

Et bien c'est l'occasion de commencer ;-)
Regarde l'explication ici
eri
0