Autres Exporter les données vers un autre onglet sans laisser d'espaces entre les lignes

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 !

Vakarm31

XLDnaute Nouveau
Bonjour,

Je rencontre une difficulté dans LibreOffice Calc.

Lorsque j’ajoute des candidats dans l’onglet STAGES-CONCOURS (plages de cellules V2:Z2), je souhaite qu’ils soient automatiquement reportés dans l’onglet BILAN, sans laisser de lignes vides.
Si une ligne ne contient aucun candidat, je ne souhaite aucun report dans l’onglet BILAN, ni pour les candidats, ni pour les colonnes liées comme Code stage, Intitulé du stage, Lieu, Date de début, ou Date de fin.

Actuellement, j’ai mis en place une formule dans la plage AH2:AH9 de l’onglet STAGES-CONCOURS pour m’aider à filtrer les lignes contenant des données. Cependant, cela ne fonctionne pas comme attendu : des lignes vides apparaissent toujours dans le BILAN, ce qui casse la logique du tableau.

Je ne souhaite pas modifier les formules, seulement m’assurer que si aucune donnée n’est présente dans V2:Z2, alors rien n’est reporté dans le BILAN, ni dans les colonnes de candidat, ni dans celles liées au stage.

Si quelqu’un a une solution (ou une idée de ce qui coince), je suis preneur !

Merci d’avance pour votre aide
 

Pièces jointes

Bonjour Vakarm31, Oneida,

Il faut 3 séries de formules matricielles dans la feuille BILAN.

Formule en A2 à valider par Ctrl+Maj+Entrée et tirer sur A2:E2 et vers le bas :
Code:
=SIERREUR(""&INDEX('STAGES-CONCOURS'!V:V;PETITE.VALEUR(SI('STAGES-CONCOURS'!$V$2:$V$3000&'STAGES-CONCOURS'!$W$2:$W$3000&'STAGES-CONCOURS'!$X$2:$X$3000&'STAGES-CONCOURS'!$Y$2:$Y$3000&'STAGES-CONCOURS'!$Z$2:$Z$3000<>"";LIGNE('STAGES-CONCOURS'!V$2:V$3000));LIGNE(A1)));"")
Formule en F2 à valider par Ctrl+Maj+Entrée et tirer sur F2:H2 et vers le bas :
Code:
=SIERREUR(""&INDEX('STAGES-CONCOURS'!C:C;PETITE.VALEUR(SI('STAGES-CONCOURS'!$V$2:$V$3000&'STAGES-CONCOURS'!$W$2:$W$3000&'STAGES-CONCOURS'!$X$2:$X$3000&'STAGES-CONCOURS'!$Y$2:$Y$3000&'STAGES-CONCOURS'!$Z$2:$Z$3000<>"";LIGNE('STAGES-CONCOURS'!AA$2:AA$3000));LIGNE(F1)));"")
Formule en I2 à valider par Ctrl+Maj+Entrée et tirer sur I2:J2 et vers le bas :
Code:
=SIERREUR(INDEX('STAGES-CONCOURS'!F:F;PETITE.VALEUR(SI('STAGES-CONCOURS'!$V$2:$V$3000&'STAGES-CONCOURS'!$W$2:$W$3000&'STAGES-CONCOURS'!$X$2:$X$3000&'STAGES-CONCOURS'!$Y$2:$Y$3000&'STAGES-CONCOURS'!$Z$2:$Z$3000<>"";LIGNE('STAGES-CONCOURS'!AD$2:AD$3000));LIGNE(I1)));"")
La dernière ligne 3000 de la feuille source est à adapter au besoin.

A+
 

Pièces jointes

Bonjour Vakarm31, Oneida,

Il faut 3 séries de formules matricielles dans la feuille BILAN.

Formule en A2 à valider par Ctrl+Maj+Entrée et tirer sur A2:E2 et vers le bas :
Code:
=SIERREUR(""&INDEX('STAGES-CONCOURS'!V:V;PETITE.VALEUR(SI('STAGES-CONCOURS'!$V$2:$V$3000&'STAGES-CONCOURS'!$W$2:$W$3000&'STAGES-CONCOURS'!$X$2:$X$3000&'STAGES-CONCOURS'!$Y$2:$Y$3000&'STAGES-CONCOURS'!$Z$2:$Z$3000<>"";LIGNE('STAGES-CONCOURS'!V$2:V$3000));LIGNE(A1)));"")
Formule en F2 à valider par Ctrl+Maj+Entrée et tirer sur F2:H2 et vers le bas :
Code:
=SIERREUR(""&INDEX('STAGES-CONCOURS'!C:C;PETITE.VALEUR(SI('STAGES-CONCOURS'!$V$2:$V$3000&'STAGES-CONCOURS'!$W$2:$W$3000&'STAGES-CONCOURS'!$X$2:$X$3000&'STAGES-CONCOURS'!$Y$2:$Y$3000&'STAGES-CONCOURS'!$Z$2:$Z$3000<>"";LIGNE('STAGES-CONCOURS'!AA$2:AA$3000));LIGNE(F1)));"")
Formule en I2 à valider par Ctrl+Maj+Entrée et tirer sur I2:J2 et vers le bas :
Code:
=SIERREUR(INDEX('STAGES-CONCOURS'!F:F;PETITE.VALEUR(SI('STAGES-CONCOURS'!$V$2:$V$3000&'STAGES-CONCOURS'!$W$2:$W$3000&'STAGES-CONCOURS'!$X$2:$X$3000&'STAGES-CONCOURS'!$Y$2:$Y$3000&'STAGES-CONCOURS'!$Z$2:$Z$3000<>"";LIGNE('STAGES-CONCOURS'!AD$2:AD$3000));LIGNE(I1)));"")
La dernière ligne 3000 de la feuille source est à adapter au besoin.

A+
Bonjour, alors là chapeau, merci beaucoup !!!!! Cordialement
 
Bonjour Vakarm, le forum,

Si vous acceptez le VBA mettez cette macro dans le code de la feuille BILAN :
VB:
Private Sub Worksheet_Activate()
Dim tablo, resu(), i&, n&, j%
tablo = Sheets("STAGES-CONCOURS").[A1].CurrentRegion.Resize(, 26) 'matrice, plus rapide
ReDim resu(1 To UBound(tablo), 1 To 10)
For i = 2 To UBound(tablo)
    If tablo(i, 22) & tablo(i, 23) & tablo(i, 24) & tablo(i, 25) & tablo(i, 26) <> "" Then
        n = n + 1
        For j = 1 To 5: resu(n, j) = tablo(i, j + 21): Next j
        For j = 6 To 8: resu(n, j) = tablo(i, j - 3): Next j
        For j = 9 To 10: resu(n, j) = tablo(i, j - 3): Next j
    End If
Next i
With [A2] '1ère cellule de destination
    If n Then .Resize(n, 10) = resu
    .Offset(n).Resize(Rows.Count - n - .Row + 1, 10).ClearContents 'RAZ en dessous
End With
End Sub
Elle se déclenche quand on active la feuille.

PS : j'ai revu les MFC en les limitant aux bordures et à la couleur des colonnes sources M:Z

A+
 

Pièces jointes

Bonjour Vakarm, le forum,

Si vous acceptez le VBA mettez cette macro dans le code de la feuille BILAN :
VB:
Private Sub Worksheet_Activate()
Dim tablo, resu(), i&, n&, j%
tablo = Sheets("STAGES-CONCOURS").[A1].CurrentRegion.Resize(, 26) 'matrice, plus rapide
ReDim resu(1 To UBound(tablo), 1 To 10)
For i = 2 To UBound(tablo)
    If tablo(i, 22) & tablo(i, 23) & tablo(i, 24) & tablo(i, 25) & tablo(i, 26) <> "" Then
        n = n + 1
        For j = 1 To 5: resu(n, j) = tablo(i, j + 21): Next j
        For j = 6 To 8: resu(n, j) = tablo(i, j - 3): Next j
        For j = 9 To 10: resu(n, j) = tablo(i, j - 3): Next j
    End If
Next i
With [A2] '1ère cellule de destination
    If n Then .Resize(n, 10) = resu
    .Offset(n).Resize(Rows.Count - n - .Row + 1, 10).ClearContents 'RAZ en dessous
End With
End Sub
Elle se déclenche quand on active la feuille.

PS : j'ai revu les MFC en les limitant aux bordures et à la couleur des colonnes sources M:Z

Un grand merci !!!!!!
 
Bonsoir,

Sur Excel les dates sont des nombres entiers.

Elles sont affichées au format Date parce qu'on donne ce format aux cellules.

Maintenant avec un fichier ods il faut voir le format des cellules.

A+
merci pour l'information maintenant j'ai une autre demande. Je souhaite reporter des données dans un autre onglet pour affichage.
Objectif :
Afficher automatiquement dans un deuxième onglet (`AFFICHAGE STAGES-CONCOURS`) uniquement les lignes de stages ou concours dont la date limite n’est pas dépassée
(c’est-à-dire aujourd’hui ou plus tard) à partir des données saisies dans l’onglet (`STAGES-CONCOURS`). voir consigne en orange dans le tableau sans macro.
Merci

---
 

Pièces jointes

Bonjour Vakarm31, le forum,

Voyez le fichier joint et cette formule matricielle en A2 :
Code:
=SIERREUR(INDEX('STAGES-CONCOURS'!A:A;PETITE.VALEUR(SI(AUJOURDHUI()<='STAGES-CONCOURS'!$I$2:$I$1000;LIGNE('STAGES-CONCOURS'!$I$2:$I$1000));LIGNE(A1)));"")
A valider par Ctrl+Maj+Entrée et propager sur A2:I5.

La ligne limite 1000 est à adapter au besoin.

Attention pour ceux qui débarquent sur ce fil : les dates sont au format mm/jj/aa

A+
 

Pièces jointes

merci pour l'information maintenant j'ai une autre demande. Je souhaite reporter des données dans un autre onglet pour affichage.
Objectif :
Afficher automatiquement dans un deuxième onglet (`AFFICHAGE STAGES-CONCOURS`) uniquement les lignes de stages ou concours dont la date limite n’est pas dépassée
(c’est-à-dire aujourd’hui ou plus tard) à partir des données saisies dans l’onglet (`STAGES-CONCOURS`). voir consigne en orange dans le tableau sans macro.
Merci

---
Bonjour Vakarm31, le forum,

Voyez le fichier joint et cette formule matricielle en A2 :
Code:
=SIERREUR(INDEX('STAGES-CONCOURS'!A:A;PETITE.VALEUR(SI(AUJOURDHUI()<='STAGES-CONCOURS'!$I$2:$I$1000;LIGNE('STAGES-CONCOURS'!$I$2:$I$1000));LIGNE(A1)));"")
A valider par Ctrl+Maj+Entrée et propager sur A2:I5.

La ligne limite 1000 est à adapter au besoin.

Attention pour ceux qui débarquent sur ce fil : les dates sont au format mm/jj/aa

A+
merci beaucoup, je vais tester!!
 
merci beaucoup, je vais tester!!
Bonjour, j'ai un autre petit souci : Il y a un formatage conditionnel sur des cellules de dates, mais après avoir converti mon fichier de LibreOffice (ODS) en Excel (.xlsx) pour le forum, le formatage ne se transfère pas correctement dans l'onglet 'AFFICHAGE STAGES-CONCOURS'. Même en ODS, le report fonctionne initialement, mais après avoir enregistré et fermé le fichier, le formatage conditionnel devient incohérent à la réouverture. J’ai inséré un macro mais ne fonctionne pas. SI vous avez une petite idée je suis preneur. Merci
 

Pièces jointes

- 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
Retour