VBA POUR COPIER UNIQUEMENT LES COLONNES ET LES LIGNES CONTENAT DES VALEURS

anbar

XLDnaute Junior
Bonjour


Je voudrais bien savoir si vous pouvez m'aider à faire un code vba pour copier uniquement les colonnes et les lignes non vides d'une feuille à l'autre dans un même classeur.
Ci-joint le classeur contenant un tableau en exemple.

Merci pour tout le monde.
 

Pièces jointes

  • vba pour copier vers la feuille 2 que les lignes et colonnes vides.xlsm
    15 KB · Affichages: 29

anbar

XLDnaute Junior
Bonjour.
Le problème c'est que jusqu'à la cellule AR10 de votre 1ère feuille il n'y a ni ligne vide ni colonne vide.
Il y a toujours quelque chose dans la 1ère ligne et dans la 1ère colonne.

Je m'excuse j'ai pas bien poser le problème, en fait je voulais dire les lignes et colonnes qui ne contiennent pas de valeurs.
car je dois absolument garder les noms des lignes et colonnes pour autres utilisations.
Merci
 

Pièces jointes

  • vba pour copier vers la feuille 2 que les lignes et colonnes vides.xlsm
    15.1 KB · Affichages: 23

job75

XLDnaute Barbatruc
Bonjour anbar, Bernard,

Oui je comprends que pour les "vides" il faut ignorer les titres.

Voyez le fichier joint et cette macro dans le code de Feuil2 :
Code:
Private Sub Worksheet_Activate()
Cells.Delete 'RAZ
On Error Resume Next 'si aucune SpecialCell
With Feuil1.UsedRange.Offset(1).SpecialCells(xlCellTypeConstants) 'Feuil1 => CodeName
    Intersect(.Cells(0, 1).EntireRow, .EntireColumn).Copy [A1] 'titres
    Intersect(.EntireRow, .EntireColumn).Copy [A2]
End With
With UsedRange: End With 'actualise les barres de défilement
End Sub
Elle se déclenche quand on active la feuille.

A+
 

Pièces jointes

  • Copier non vides(1).xlsm
    28.1 KB · Affichages: 30

anbar

XLDnaute Junior
Bonjour anbar, Bernard,

Oui je comprends que pour les "vides" il faut ignorer les titres.

Voyez le fichier joint et cette macro dans le code de Feuil2 :
Code:
Private Sub Worksheet_Activate()
Cells.Delete 'RAZ
On Error Resume Next 'si aucune SpecialCell
With Feuil1.UsedRange.Offset(1).SpecialCells(xlCellTypeConstants) 'Feuil1 => CodeName
    Intersect(.Cells(0, 1).EntireRow, .EntireColumn).Copy [A1] 'titres
    Intersect(.EntireRow, .EntireColumn).Copy [A2]
End With
With UsedRange: End With 'actualise les barres de défilement
End Sub
Elle se déclenche quand on active la feuille.

A+

Merci pour votre aide
Ca marche très très bien
Merci
 

job75

XLDnaute Barbatruc
Je voudrais savoir si c'est possible de s’arrêter à la ligne 20
Fichier (2) avec cette nouvelle macro :
Code:
Private Sub Worksheet_Activate()
Application.ScreenUpdating = False
Cells.Delete 'RAZ
On Error Resume Next 'si aucune SpecialCell
With Feuil1.UsedRange.Offset(1).Resize(19).SpecialCells(xlCellTypeConstants) 'Feuil1 => CodeName
    [A1].ColumnWidth = .Parent.UsedRange.Cells(1).ColumnWidth 'largeur de la 1ère colonne
    Intersect(.Cells(0, 1).EntireRow, .EntireColumn).Copy [A1] 'titres
    Intersect(.EntireRow, .EntireColumn).Copy [A2]
End With
With UsedRange: End With 'actualise les barres de défilement
End Sub
A+
 

Pièces jointes

  • Copier non vides(2).xlsm
    29.5 KB · Affichages: 28

anbar

XLDnaute Junior
Fichier (2) avec cette nouvelle macro :
Code:
Private Sub Worksheet_Activate()
Application.ScreenUpdating = False
Cells.Delete 'RAZ
On Error Resume Next 'si aucune SpecialCell
With Feuil1.UsedRange.Offset(1).Resize(19).SpecialCells(xlCellTypeConstants) 'Feuil1 => CodeName
    [A1].ColumnWidth = .Parent.UsedRange.Cells(1).ColumnWidth 'largeur de la 1ère colonne
    Intersect(.Cells(0, 1).EntireRow, .EntireColumn).Copy [A1] 'titres
    Intersect(.EntireRow, .EntireColumn).Copy [A2]
End With
With UsedRange: End With 'actualise les barres de défilement
End Sub
A+

Merci
Rien à dire c'est bien fait.
Merci à tous
 

Discussions similaires

Statistiques des forums

Discussions
312 367
Messages
2 087 651
Membres
103 628
dernier inscrit
rou37x