Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/11/2011, 14h36   #1
Futur Membre du Club
 
Homme
Technicien Méthode
Inscription : mars 2011
Messages : 52
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Technicien Méthode

Informations forums :
Inscription : mars 2011
Messages : 52
Points : 16
Points : 16
Par défaut Copier/Coller cellules visibles par macro

Bonjour,

Je souhaite faire un copier/coller par macro entre 2 classeurs.
Le soucis est que je souhaite copier les cellules "VISIBLES" et garder le format des cellules.

Quand je fais le code suivant :

Code :
1
2
3
4
5
6
7
8
9
Set Maplage = Range("A9:" & Range("B65536").End(xlUp).Address)
Maplage.Select
Selection.SpecialCells(xlCellTypeVisible).Select
Application.CutCopyMode = False
Selection.Copy
Windows("PLANNING PAR SEM.xls").Activate
Sheets(UserForm1.ComboBox1.Value).Select
Range("C1").Select
ActiveSheet.Paste
Le copier/coller s'effectue bien pour les cellules visibles mais ne garde pas le format.

Et quand je fais :

Code :
1
2
3
With Workbooks("Classeur1").Sheets("Feuill1")
.Range("A9:" & Range("B65536").End(xlUp).Address).Copy Workbooks("PLANNING PAR SEM").Sheets(UserForm1.ComboBox1.Value).Range("C1")
End With
La copie me garde le format mais me colle ausse les cellules masquées.


Quelqu'un aurait une idée pour que l'un des 2 codes marche avec cellules visibles et format ?

Merci par avance.

PS : J'ai tester avec PasteSpecial mais le code ne fonctionne pas.
Nikodemus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2011, 14h54   #2
Membre Expert
 
Avatar de MarcelG
 
Homme Marcel GALANO
Développeur informatique
Inscription : juillet 2009
Messages : 644
Détails du profil
Informations personnelles :
Nom : Homme Marcel GALANO
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Finance

Informations forums :
Inscription : juillet 2009
Messages : 644
Points : 1 255
Points : 1 255
Par défaut copier cellules visibles

Bonjour Nikodemus,

Essaie d'adapter

Code :
1
2
3
4
5
6
7
8
9
10
11
Public Sub essai()
Dim maplage As Range
Set maplage = Range("A9:" & Range("B65536").End(xlUp).Address).SpecialCells(xlCellTypeVisible)
maplage.Copy
With Workbooks("classcol2.xls")
        .Activate
        .Sheets(1).Range("C1").Select
        .ActiveSheet.Paste
End With
Set maplage = Nothing
End Sub
__________________

Bien Cordialement.

Marcel

Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


MarcelG est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 25/11/2011, 15h31   #3
Futur Membre du Club
 
Homme
Technicien Méthode
Inscription : mars 2011
Messages : 52
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Technicien Méthode

Informations forums :
Inscription : mars 2011
Messages : 52
Points : 16
Points : 16
Parfait cela fonctionne
Merci de ta réactivité.

Tant que jy suis saurai tu comment trouver une colonne à copier par un numéro ?
Genre si j'ai i = 8, je voudrais qu'il comprenne Range("H9:" & Range("H65536").End(xlUp) mais je ne sais pas comment remplacer la lettre par un chiffre (et cela pour toutes les colonnes du classeur).

Merci par avance.
Nikodemus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2011, 15h41   #4
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Ici, on colorie en jaune la plage de la colonne i
Code :
1
2
3
4
5
6
7
8
9
Sub Test()
Dim i As Integer
 
i = 9
 
With ThisWorkbook.Worksheets("Feuil1")
    .Range(.Cells(9, i), .Cells(.Rows.Count, i).End(xlUp)).Interior.ColorIndex = 6
End With
End Sub
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 25/11/2011, 15h54   #5
Membre Expert
 
Avatar de MarcelG
 
Homme Marcel GALANO
Développeur informatique
Inscription : juillet 2009
Messages : 644
Détails du profil
Informations personnelles :
Nom : Homme Marcel GALANO
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Finance

Informations forums :
Inscription : juillet 2009
Messages : 644
Points : 1 255
Points : 1 255
Par défaut selection

Salut,

Si le nombre en question figure en cellule "A15" (par exemple), alors tu peux adapter le code suivant :

Code :
1
2
3
4
5
6
7
8
Public Sub new_essai()
Dim dercel As Range
With ActiveSheet
        Set dercel = .Cells(.Rows.Count, .[A15].Value).End(xlUp)
        .Range(Cells(9, .[A15]), dercel).Select
End With
Set dercel = Nothing
End Sub
__________________

Bien Cordialement.

Marcel

Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


MarcelG est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2011, 16h58   #6
Futur Membre du Club
 
Homme
Technicien Méthode
Inscription : mars 2011
Messages : 52
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Technicien Méthode

Informations forums :
Inscription : mars 2011
Messages : 52
Points : 16
Points : 16
Exactement ce qu'il me fallait.

Merci pour tout.
Nikodemus est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h24.


 
 
 
 
Partenaires

Hébergement Web