Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Décale la copie si colonne vide

  • Initiateur de la discussion Initiateur de la discussion Yes
  • Date de début Date de début

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 !

Yes

XLDnaute Nouveau
Bonjour,

Tout nouveau ici et pourtant vous m'avez déjà très bien aidé par le passé !

Je suis entrain de faire un nouveau fichier pour l'hotel/restaurant où je travaille et je bloque sur un point.

- la 1ere feuille importe un fichier du logiciel hotelier "Importation Opéra"
- la 2ème feuille "Calcul Presta" va chercher si un mot est présent dans les prestations pour l'indiquer par un 1 dans la colonne
(tout en haut la somme total de prestations)
- la 3ème feuille "mise en forme" des prestations
- la 4ème feuille "impression document" est le récapitulatif pour l'impression de mon rapport.

Je souhaiterai qu'il y ai en 4ème feuille uniquement les colonnes où j'ai une prestation à mettre en chambre et qu'il ne recopie pas les colonnes où il n'y a pas de prestations à mettre.

Par exemple aujourd'hui :
Rien après Voss (colonne E) on passerai directement à la colonne O
Idem pour les numéros de chambres - rien après la 10 on passerai à la chambre 21

merci beaucoup pour votre aide ! je galère pas mal !
 

Pièces jointes

Dernière modification par un modérateur:
Re : Décale la copie si colonne vide

Bonsoir Yes et bienvenue sur XLD 🙂,

Un essai par macro dans le fichier joint. Le code est dans le module de code de Feuil4:
VB:
Sub reduire()
Dim L1&, L2&, C1&, C2&, i&, j&, aux&

  L1 = 6: L2 = Cells(Rows.Count, "b").End(xlUp).Row
  C1 = 3: C2 = Rows(5).Find("MATIN", , xlValues, xlWhole).Column - 2
  Application.ScreenUpdating = False
  
  For j = C2 To C1 Step -1
    aux = Application.WorksheetFunction.Count(Range(Cells(L1, j), Cells(L2, j)))
    If aux = 0 Then Range(Cells(L1 - 1, j), Cells(L2 + 1, j)).Delete xlShiftToLeft
  Next j
  
  C2 = Rows(5).Find("MATIN", , xlValues, xlWhole).Column - 2
  If C2 = 2 Then
    Range(Cells(5, 1), Cells(Rows.Count, 1)).EntireRow.Delete
  Else
    For i = L2 To L1 Step -1
      aux = Application.WorksheetFunction.Count(Range(Cells(i, C1), Cells(i, C2)))
      If aux = 0 Then Cells(i, C1).EntireRow.Delete
    Next i
    Rows(5).Copy Rows(Cells(Rows.Count, "b").End(xlUp).Row + 2)
  End If
End Sub
 

Pièces jointes

Dernière édition:
Re : Décale la copie si colonne vide

Bonjour,

Génial c'est exactement ça... bon depuis ce matin je cherche a comprendre comment cela fonctionne !!

et aussi pourquoi il recopie la ligne en bas, mais pas vraiment là ou je veux... je souhaite juste une ligne au-dessus.

Merci énormément, je vais essayer d'analyser pour l'appliquer sur d'autres tableaux.
 
Re : Décale la copie si colonne vide

Bonsoir Yes,

(...) bon depuis ce matin je cherche a comprendre comment cela fonctionne !! (...)

Veuillez trouver ci-joint le fichier avec le code accompagné de commentaires.

(...) et aussi pourquoi il recopie la ligne en bas, mais pas vraiment là ou je veux... je souhaite juste une ligne au-dessus. (...)

J'ai rajouté dans le code la possibilité de ne pas avoir le rappel des en-têtes au bas du tableau.
Voir les lignes de commentaires commençant par '**

 

Pièces jointes

Re : Décale la copie si colonne vide

Merci beaucoup, avec les commentaires c'est un peu plus simple... !!!!
Et aussi j'ai appliquer l'écran statique dans d'autres fichiers, ça fait plus propre que voir la liste de calculs.

Maintenant je ne comprends pas pourquoi il me laisse les deux dernières colonne "renouvellement vip" et "top vip" ?
c'est plus un problème de formule que de supression non ?

Si quelqu'un peut jeter un oeil.

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

Discussions similaires

Réponses
40
Affichages
2 K
Réponses
3
Affichages
773
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…