Copie ligne sans cellule vide

kayslife

XLDnaute Junior
Bonjour tout le monde.

j'ai un souci depuis pas mal de temps. comme l'indique mon fichier joint j'ai une ligne avec des cellules vides. Mais je voudrais la copiée vers une autre feuille (de préférence par formule mais j'accepte aussi les macros) sans les cellule vide.



Merci
 

Pièces jointes

  • Classeur2.xlsx
    8.6 KB · Affichages: 95
  • Classeur2.xlsx
    8.6 KB · Affichages: 81
  • Classeur2.xlsx
    8.6 KB · Affichages: 123

Legolas

XLDnaute Occasionnel
Re : Copie ligne sans cellule vide

Bonjour,

En passant par une macro, à coller dans un module :

VB:
Sub Macro1()

'Déclaration des variables
Dim tabv1(0 To 1, 0 To 10)
Dim i, k, Colonne_fin As Integer
Dim ligne_donnee, ligne_copie As Integer

'Initialisation des variables
ligne_donnee = 2
ligne_copie = 2
Colonne_fin = ThisWorkbook.Sheets("BASE").Cells(ligne_donnee, 50).End(xlToLeft).Column
    
'Récupération des données
For i = 1 To Colonne_fin
    If Sheets("BASE").Cells(ligne_donnee, i) <> 0 Then
        tabv1(0, k) = Sheets("BASE").Cells(ligne_donnee, i)
        k = k + 1
    End If
Next

'Recopie des données
Sheets("RESULTAT").Activate
Range(Cells(ligne_copie, 1), Cells(ligne_copie, 20)).Resize(1, k) = tabv1
    
End Sub

A+
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Copie ligne sans cellule vide

Bonjour le fil, bonjour le forum,

Peut-être comme ça :
Code:
Sub Macro1()
Dim cel As Range 'déclare la variable cel (CELlule)
Dim dest As Range 'déclare la variable dest (cellule de DESTination)

For Each cel In Sheets("BASE").Range("A2").CurrentRegion 'boucle sur toutes les cellules de la plage des cellules éditées adjacente à A2 de l'onglet "BASE"
    With Sheets("RESULTAT") 'prend en compte l'onglet "RESULTAT"
        'définit la cellule de destination
        Set dest = IIf(.Range("A2").Value = "", .Range("A2"), .Cells(2, Application.Columns.Count).End(xlToLeft).Offset(0, 1))
    End With 'fin de la prise en compte de l'onglet "RESULTAT"
    If cel.Value <> 0 Then cel.Copy dest 'si la cellule est diférente de zéro, copie et colle la cellule cel dans dest
Next cel 'prochaine cellule de la boucle
End Sub
 

job75

XLDnaute Barbatruc
Re : Copie ligne sans cellule vide

Bonjour kayslife, Legolas, Robert,

Formule matricielle en cellule RESULTAT!A2 :

Code:
=SI(COLONNE()>SOMME(N(BASE!$A2:$H2<>0));"";INDEX(BASE!2:2;PETITE.VALEUR(SI(BASE!$A2:$H2<>0;COLONNE(BASE!$A2:$H2));COLONNE())))
A valider par Ctrl+Maj+Entrée et tirer vers la droite.

Les bordures sont créées par Mise en forme conditionnelle (MFC).

Fichier joint.

A+
 

Pièces jointes

  • Formule matricielle(1).xls
    26.5 KB · Affichages: 124

JHA

XLDnaute Barbatruc
Re : Copie ligne sans cellule vide

Bonjour à tous, Salut "Job75"

Je me permets de modifier un tantinet ta réponse pour éviter d'afficher également les valeurs "texte"

Code:
=SI(COLONNE()>SOMME(N(BASE!$A2:$H2>0));"";INDEX(BASE!2:2;PETITE.VALEUR(SI((BASE!$A2:$H2<>0)*(ESTNUM(BASE!$A2:$H2));COLONNE(BASE!$A2:$H2));COLONNE())))

Formule matricielle

JHA
 

Pièces jointes

  • Classeur recap colonne.xlsx
    8.9 KB · Affichages: 82

job75

XLDnaute Barbatruc
Re : Copie ligne sans cellule vide

Re,

Il faut commencer par le centre.

Dans la barre de formule sélectionner SI(BASE!$A2:$H2<>0;COLONNE(BASE!$A2:$H2)) et appuyer sur F9.

On voit apparaître une matrice constituée de nombres (les n° de colonnes) et de FAUX.

Continuer avec PETITE.VALEUR(SI(BASE!$A2:$H2<>0;COLONNE(BASE!$A2:$H2));COLONNE())

PETITE.VALEUR recherche le n° de colonne correspondant au n° de la cellule en cours.

Enfin INDEX renvoie la valeur dont la position a été déterminée sur la ligne 2:2.

Tout ça est très classique, mais il faut avoir un peu compris le calcul matriciel...

A+
 

job75

XLDnaute Barbatruc
Re : Copie ligne sans cellule vide

Re,

Si l'on fait commencer le tableau en RESULTAT!B2 il faut remplacer COLONNE() par COLONNE()-1.

Ou par COLONNES($B:B) de manière à obtenir 1 en B2, 2 en C2...

Toujours du très classique.

Fichier (2).

A+
 

Pièces jointes

  • Formule matricielle(2).xls
    26.5 KB · Affichages: 93
  • Formule matricielle(2).xls
    26.5 KB · Affichages: 95

Statistiques des forums

Discussions
312 490
Messages
2 088 884
Membres
103 982
dernier inscrit
krakencolas