Code VB, ne pas afficher ligne vide

Bonjour ,

Je souhaite à partir de la feuille " DEVIS " , plage ( A29:E36) , copier cette plage dans la feuille " MVTSTOCK" .

Ce que j'ai fait avec la macro3

Problème :

- je veux que cette plage se recopie à la suite et non par dessus la plage de la feuille MVTSTOCK ( je sais que je dois faire insérer lignes mais....)

- le plus gros problème , est que je souhaite insérer un code dans cette macro qui fait que si colonne A = "" alors la ligne ne s'affiche pas.

En gros je viens vous demander de l'aide pour connaitre le code pour ne pas afficher les lignes vides.

Merci de votre aide.

Edit Dan : Modifié titre du sujet.

32tourmalet.rar (33.13 Ko)

bonjour maxime079, forum,

Tu peux remplacer le code la macro3 par celui-ci :

Sub Macro3()
    Application.ScreenUpdating = False
    Sheets("DEVIS").Range("A29:E36").Copy
    With Sheets("MVTSTOCK")
        .Range("A" & .[A65536].End(xlUp).Row + 1).PasteSpecial Paste:=xlPasteValues
    End With
    Application.CutCopyMode = False
End Sub

Pour tes lignes vides je ne comprends pas bien ce que tu veux faire.

Tu veux masquer les lignes vides en colonne A de la feuille MVTSTOCK ?

Salut ,

Oui je veux que quand la colonne A est vide alors la ligne ne s'affiche pas , mais je n'y arrive pas

Merci pour la macro 3

Salut maxime,

Essaie avec ce code :

Sub Macro3()
    Application.ScreenUpdating = False
    Sheets("DEVIS").Range("A29:E36").Copy
    With Sheets("MVTSTOCK")
        .Range("A" & .Range("A65536").End(xlUp).Row + 1).PasteSpecial Paste:=xlPasteValues
        Application.CutCopyMode = False
        .Cells.EntireRow.Hidden = False
        derlig = .Range("A65536").End(xlUp).Row + 1
        .Range("A" & derlig & ":A65536").EntireRow.Hidden = True
        .Range("A5:A" & derlig - 1).SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
    End With
End Sub

bonsoir ,

Alors le code fonctionnait au début , et comme je veux l'insérer dans la macro VALIDATION, j'ai copier le code par dessus mon ancien "copier / coller " dans la macro VALIDATION et la ben ca marche pas... est ce que vous pourriez regarder ou l'insérer exactement dans la macro validation afin de remplacier mon ancien collage de la plage " A29:E36" de la feuille DEVIS ?

Merci

Bonjour maxime, forum,

Tu peux remplacer ta macro validation par celle-ci :

Sub Validation()
'
' Validation Macro
'

'
    Application.ScreenUpdating = False
    Sheets("DEVIS").Range("A26:H26").Copy
    With Sheets("Historique devis reserv.")
        .Range("A3:H3").PasteSpecial Paste:=xlPasteValues
        Application.CutCopyMode = False
        .Rows("3:3").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    End With
    Sheets("DEVIS").Range("A29:E36").Copy
    With Sheets("MVTSTOCK")
        .Range("A" & .Range("A65536").End(xlUp).Row + 1).PasteSpecial Paste:=xlPasteValues
        Application.CutCopyMode = False
        .Cells.EntireRow.Hidden = False
        derlig = .Range("A65536").End(xlUp).Row + 1
        .Range("A" & derlig & ":A65536").EntireRow.Hidden = True
        On Error Resume Next
        .Range("A5:A" & derlig - 1).SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
    End With
    Sheets("DEVIS").Select
    ExecuteExcel4Macro "PRINT(1,,,3,,,,,,,,2,,,TRUE,,FALSE)"
    Range("A9:G16,E4:E5").ClearContents
    Range("E3") = Range("E3") + 1
End Sub

Le fichier correspondant :

Bonjour VBa- new

Merci pour vos réponses rapides et parfaites.

La macro marche comme je veux , seul problème est que les lignes blanches sont toujours présentes...

Ps : quel est le code pour que quand on execute une macro on voit moins toutes les actions?

Merci

Re,

maxime079 a écrit :

seul problème est que les lignes blanches sont toujours présentes...

Quelles lignes blanches ? Peux-tu être plus précis ?

maxime079 a écrit :

Ps : quel est le code pour que quand on execute une macro on voit moins toutes les actions?

Pour ne pas voir ce les actions (ce qui est appelé "mise à jour de l'écran") utilise le code suivant :
Application.ScreenUpdating = False

Bonjour et bienvenue,

Merci de lire la charte du forum dont le lien t'a été envoyé dans ta BAL (Titre du sujet et cloture des fils)

Merci de ta participation

A bientôt

Dan

re ,

Les lignes blanches , c'est à dire que quand on copie la plage de cellule A29:E36 de la feuille DEVIS vers MVTSTOCK, alors quand colonne A est vide alors la ligne n'apparait pas , avec la macro3 que t'avais fait ca fonctionnait , alors que la dans la macro VALIDATION() les lignes apparaissent toujours....

MERCI , apres ce sera tout

Re,

maxime079 a écrit :

alors que la dans la macro VALIDATION() les lignes apparaissent toujours....

C'est bizarre, j'ai pourtant fait un copier-coller de la macro3.

Peux-tu joindre le fichier qui te fait ça ? Dis-moi exactement les actions que tu fais dans ton fichier, pour que je les reproduise et voir où ça coince.

Re bonjour,

Alors les étapes :

  • Copier les celulles A26:H26 de DEVIS vers Historique devis reserv
  • Copier Plage cellule A29:E36 de DEVIS vers MVTSTOCK , et c'est dans cette feuille que quand colonne A est vide alors je veux pas que la ligne apparaisse , et que le prochain copier / coller s'insère avant ou après le précedent
  • Ensuite J'imprime la zone d'impression de la feuille DEVIS en 2 exemplaires
  • Puis remise à zero des plages A9:G16,E9,E4:E5
  • Compteur + 1
11tourmalet.rar (32.52 Ko)
3donnees-copie.xlsx (21.62 Ko)
maxime079 a écrit :

et c'est dans cette feuille que quand colonne A est vide alors je veux pas que la ligne apparaisse

Tu veux que les lignes 2 et 3 n'apparaissent pas ?

re ,

Non sur cet exemple je voudrai que ce soit les lignes 7 à 12 , correspondantes aux lignes non remplies dans la feuille DEVIS...

Ça me parait pas très clair tout ça

Dans l'image que tu as envoyée, la colonne A des lignes 7 à 12 n'est pas vide ! Il y a un 1 à chaque ligne !

Si je comprends bien, ce que tu veux c'est que s'il y a une case vide sur la ligne (dans la feuille MVTSTOCK), comme en C7, D7, C8, C9...C12, D12, la ligne n'apparaît pas, c'est ça ?

oui c'est ca , désolé de mal m'expliquer ...

Ok. Remplace la macro validation() par celle-ci :

Sub Validation()
'
' Validation Macro
'

'
    Application.ScreenUpdating = False
    Sheets("DEVIS").Range("A26:H26").Copy
    With Sheets("Historique devis reserv.")
        .Range("A3:H3").PasteSpecial Paste:=xlPasteValues
        Application.CutCopyMode = False
        .Rows("3:3").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    End With
    Sheets("DEVIS").Range("A29:E36").Copy
    With Sheets("MVTSTOCK")
        .Cells.EntireRow.Hidden = False
        .Range("A" & .Range("A65536").End(xlUp).Row + 1).PasteSpecial Paste:=xlPasteValues
        Application.CutCopyMode = False
        derlig = .Range("A65536").End(xlUp).Row + 1
        .Range("A" & derlig & ":A65536").EntireRow.Hidden = True
        For i = 5 To derlig - 1
            If Application.WorksheetFunction.CountBlank(.Range("A" & i & ":E" & i)) > 1 Then .Rows(i).EntireRow.Hidden = True
        Next i
    End With
    Sheets("DEVIS").Select
'    ExecuteExcel4Macro "PRINT(1,,,3,,,,,,,,2,,,TRUE,,FALSE)"
    Range("A9:G16,E9,E4:E5").ClearContents
    Range("E3") = Range("E3") + 1
End Sub

EDIT : code modifié un tantinet

Merci ca marche

Est ce que je peux te demander une dernière petite aide ?

Effectivement Enlève le petit ' qui se trouve au début de la ligne

'    ExecuteExcel4Macro "PRINT(1,,,3,,,,,,,,2,,,TRUE,,FALSE)"

du code précédent.

J'ai édité le code précédent, l'as-tu vu ?

Oui je viens de le voir pour l'impression

Alors mon second problème est par rapport à la macro Extraction ( correspondante au bouton 36 de la feuille FACTURE)

Cette macro consiste à reprendre les informations de la feuille MVTSTOCK et HISTORIQUE DEVIS , et de faire cette recherche à partir du Numero devis en B3

Le problème numéro 1 est le même que pour la macro VALIDATION, c'est à dire que je ne veux pas que les lignes vides apparaissent dans cette facture ( cette dernière étant imprimée et donnée au client )

numéro 2 est que la macro en l'état actuel , supprime également A26:E27...

EN JOINT le fichier en l'état

18tourmalet.rar (33.64 Ko)
Rechercher des sujets similaires à "code pas afficher ligne vide"