Macro Excel - sélection d'une plage de donnée
Résolu/Fermé
fabnad
Messages postés
28
Date d'inscription
dimanche 21 janvier 2007
Statut
Membre
Dernière intervention
16 mars 2010
-
4 mars 2009 à 14:15
arcrocnoir Messages postés 2 Date d'inscription jeudi 16 décembre 2010 Statut Membre Dernière intervention 19 décembre 2010 - 19 déc. 2010 à 21:39
arcrocnoir Messages postés 2 Date d'inscription jeudi 16 décembre 2010 Statut Membre Dernière intervention 19 décembre 2010 - 19 déc. 2010 à 21:39
A voir également:
- Macro Excel - sélection d'une plage de donnée
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Déplacer une colonne excel - Guide
- Word et excel gratuit - Guide
- Calculer une moyenne sur excel - Guide
3 réponses
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
4 mars 2009 à 14:27
4 mars 2009 à 14:27
Bonjour,
Normalement, si tu avais sélectionner ta plage avec l'éditeur de macro tu a eu tne plage en référence R1C1.
Pour une plage que tu veux inscrire directement
Plage = Range("A1:F25") .. Par exemple.
A+
Normalement, si tu avais sélectionner ta plage avec l'éditeur de macro tu a eu tne plage en référence R1C1.
Pour une plage que tu veux inscrire directement
Plage = Range("A1:F25") .. Par exemple.
A+
michel_m
Messages postés
16602
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 313
4 mars 2009 à 14:42
4 mars 2009 à 14:42
bonjour,
la seule méthode sûre est d'employer ces 2 instructions
lig = Cells.Find("*", , xlFormulas, , xlByRows, xlPrevious).Row
col = Cells.Find("*", , xlFormulas, , xlByColumns, xlPrevious).Row
lig étant la dernière ligne utilisée (vide ou pas avant)
col, même punition pour les colonnes
la définition de ctte cellule peut être écrit de cette façon:
cellslig,col)
la propriété usedrange souvent citée n'est valable que pour un tableau plein
il y a souvent des problèmes avec cette instruction: Cells.SpecialCells(xlCellTypeLastCell).Row
la seule méthode sûre est d'employer ces 2 instructions
lig = Cells.Find("*", , xlFormulas, , xlByRows, xlPrevious).Row
col = Cells.Find("*", , xlFormulas, , xlByColumns, xlPrevious).Row
lig étant la dernière ligne utilisée (vide ou pas avant)
col, même punition pour les colonnes
la définition de ctte cellule peut être écrit de cette façon:
cellslig,col)
la propriété usedrange souvent citée n'est valable que pour un tableau plein
il y a souvent des problèmes avec cette instruction: Cells.SpecialCells(xlCellTypeLastCell).Row
fabnad
Messages postés
28
Date d'inscription
dimanche 21 janvier 2007
Statut
Membre
Dernière intervention
16 mars 2010
4 mars 2009 à 15:38
4 mars 2009 à 15:38
Boonjour Michel,
Merci de ton retour rapide.
Cependant je suis débutant et je comprends pas forcément toutes tes infos.
Pourrais tu me dire ce que tes consignes donneraient dans ma macro.
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 04/03/2009 par
'
'
Workbooks.Open Filename:= _
"E:\DONNEES\mabillon-fab\MES DOCUMENTS\Classeurtestextraction.xls"
Range("A1:G172").Select
Selection.Copy
Windows("Classeur2.xls").Activate
Range("A2").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
ActiveWindow.SmallScroll Down:=-18
End Sub
Merci de ton retour rapide.
Cependant je suis débutant et je comprends pas forcément toutes tes infos.
Pourrais tu me dire ce que tes consignes donneraient dans ma macro.
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 04/03/2009 par
'
'
Workbooks.Open Filename:= _
"E:\DONNEES\mabillon-fab\MES DOCUMENTS\Classeurtestextraction.xls"
Range("A1:G172").Select
Selection.Copy
Windows("Classeur2.xls").Activate
Range("A2").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
ActiveWindow.SmallScroll Down:=-18
End Sub
michel_m
Messages postés
16602
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 313
4 mars 2009 à 16:39
4 mars 2009 à 16:39
Re,bonjour l'ami lhermite
petite remarque au départ: dans le TCD, il suffit de décocher "vide" pour qu'ils disparaissent du TCD... (double clic sur un des boutons du TCD)
pour revenir à ta macro en considérant un nombre de colonnes fixes, la colonne A étant utilisée...
remplace
Workbooks.Open Filename:= _
"E:\DONNEES\mabillon-fab\MES DOCUMENTS\Classeurtestextraction.xls"
Range("A1:G172").Select
Selection.Copy
par (xl<2007)
Dim derlig As Long
Workbooks.Open Filename:= _
"E:\DONNEES\mabillon-fab\MES DOCUMENTS\Classeurtestextraction.xls"
derlig = Range("A65536").End(xlUp).Row
Range(Cells(1, 1), Cells(derlig, 7)).Copy
pour te tuyauter sur le VBA
www.info-3000.com (c'est un Michel mais pas moi!)
petite remarque au départ: dans le TCD, il suffit de décocher "vide" pour qu'ils disparaissent du TCD... (double clic sur un des boutons du TCD)
pour revenir à ta macro en considérant un nombre de colonnes fixes, la colonne A étant utilisée...
remplace
Workbooks.Open Filename:= _
"E:\DONNEES\mabillon-fab\MES DOCUMENTS\Classeurtestextraction.xls"
Range("A1:G172").Select
Selection.Copy
par (xl<2007)
Dim derlig As Long
Workbooks.Open Filename:= _
"E:\DONNEES\mabillon-fab\MES DOCUMENTS\Classeurtestextraction.xls"
derlig = Range("A65536").End(xlUp).Row
Range(Cells(1, 1), Cells(derlig, 7)).Copy
pour te tuyauter sur le VBA
www.info-3000.com (c'est un Michel mais pas moi!)
fabnad
Messages postés
28
Date d'inscription
dimanche 21 janvier 2007
Statut
Membre
Dernière intervention
16 mars 2010
5 mars 2009 à 09:34
5 mars 2009 à 09:34
Merci Michel,
ça tourne comme sur des roulettes.
A+
ça tourne comme sur des roulettes.
A+
arcrocnoir
Messages postés
2
Date d'inscription
jeudi 16 décembre 2010
Statut
Membre
Dernière intervention
19 décembre 2010
19 déc. 2010 à 21:39
19 déc. 2010 à 21:39
cette macro sélectionne toute les lignes en dessous du tableau,
mais comment sélectionner juste un nombre précis de ligne
exemple, je saisi le nombre d'ouvrier k j'ai (23), et il me sélectionne les 23 premières ligne
mais comment sélectionner juste un nombre précis de ligne
exemple, je saisi le nombre d'ouvrier k j'ai (23), et il me sélectionne les 23 premières ligne
4 mars 2009 à 15:36
merci de ce retour rapide
Mais je comprends pas quand tu dis "Normalement, si tu avais sélectionner ta plage avec l'éditeur de macro tu a eu tne plage en référence R1C1. "
moi voici ce que j'ai quand je fabrique ma macro et que je sélectionne la plage de données que je souhaite.
Mais cette plage de données sera différente + ou - de lignes selons les mois. (c'est données sont des incidents)
Donc je souhaite sélectionner uniquement les cellules avec données. Si je vois large et que je sélectionne 20000 lignes je vais avoir des cellules. Ces cellules vides généreront une valeur "vide" dans mes tableaux dynamiques croisés.
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 04/03/2009 par EDF-GDF
'
'
Workbooks.Open Filename:= _
"E:\DONNEES\mabillon-fab\MES DOCUMENTS\Classeurtestextraction.xls"
Range("A1:G172").Select
Selection.Copy
Windows("Classeur2.xls").Activate
Range("A2").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
ActiveWindow.SmallScroll Down:=-18
End Sub