Comment faire en sorte que seules les colonnes V à AB soient affichées à l'écran et qu'elles l'occupent en entier ?
Utilise une macro:
Sub zoomauto()
Range("V:AB").Select
ActiveWindow.Zoom = True
End Sub
Sub zoomauto()
Range("V:AB").Select
ActiveWindow.Zoom = True
End Sub
JLuc,
Ajouté ou modifié le 13/11/2005 (N°1706)
Ajouté ou modifié le 13/11/2005 (N°1706)
J'ai une colonne contenant des valeurs, et j'aimerais, sur une autre, faire apparaitre 1 valeur sur 2 de la 1ère colonne.
En B1 et recopie vers le bas :
=DECALER($A$1;(LIGNE()-1)*2;)
=DECALER($A$1;(LIGNE()-1)*2;)
Alain Vallon,
Ajouté ou modifié le 09/07/2005 (N°1651)
Ajouté ou modifié le 09/07/2005 (N°1651)
Comment sélectionner la cellule qui se trouve à l'intersection de la dernière ligne et de la dernière colonne utilisée ?
[A1].SpecialCells(xlCellTypeLastCell).Select
et si tu veux sélectionner la plage qui va de A1 à cette dernière cellule :
Range("A1:" & [A1].SpecialCells(xlCellTypeLastCell).Address).Select
et si tu veux sélectionner la plage qui va de A1 à cette dernière cellule :
Range("A1:" & [A1].SpecialCells(xlCellTypeLastCell).Address).Select
ChrisV,
Ajouté ou modifié le 25/06/2005 (N°1636)
Ajouté ou modifié le 25/06/2005 (N°1636)
Comment faire pour que les utilisateurs de mon classeurs ne puissent voir et se déplacer
que dans une zone déterminée ?
c'est possible avec VBA, en utilisant la propriété ScrollArea.
Cette propriété n'est pas sauvée avec le fichier, il faut donc la mettre dans le module
ThsWorkbook, dans une macro workbook_open :
Private Sub Workbook_Open()
ThisWorkbook.Sheets("Feuil1").ScrollArea = "a1:f100"
End Sub
Cette propriété n'est pas sauvée avec le fichier, il faut donc la mettre dans le module
ThsWorkbook, dans une macro workbook_open :
Private Sub Workbook_Open()
ThisWorkbook.Sheets("Feuil1").ScrollArea = "a1:f100"
End Sub
Denis P.,
Ajouté ou modifié le 05/03/2005 (N°1585)
Ajouté ou modifié le 05/03/2005 (N°1585)
J'ai des données dans la plage A1:Xn, X et n étant variables. Cette plage est entourée de
cellules vides. Je voudrais sélectionner en VBA la plage A2:Xn. Autrement dit, je voudrais
enlever la première ligne de la zone en cours définie depuis A1.
Cette formule fonctionne, que toutes les cellules de la plage à tester soient remplies
ou Si seules quelques cellules de la plage sont renseignées. Par exemple, si seules
les cellules A1, B6 et C3 sont remplies. cette formule renverra la plage A2:C10:
Range("A2", Cells(Cells.Find("*", , , , xlByRows, xlPrevious).Row,
Cells.Find("*", , , , xlByColumns, xlPrevious).Column)).Select
Si toutes les cellules sont renseignées dans la plage :
With Range("A1").CurrentRegion
Intersect(.Offset(1), .Cells).Select
End With
ou Si seules quelques cellules de la plage sont renseignées. Par exemple, si seules
les cellules A1, B6 et C3 sont remplies. cette formule renverra la plage A2:C10:
Range("A2", Cells(Cells.Find("*", , , , xlByRows, xlPrevious).Row,
Cells.Find("*", , , , xlByColumns, xlPrevious).Column)).Select
Si toutes les cellules sont renseignées dans la plage :
With Range("A1").CurrentRegion
Intersect(.Offset(1), .Cells).Select
End With
Alain vallon, Daniel Maher,
Ajouté ou modifié le 20/05/2004 (N°1421)
Ajouté ou modifié le 20/05/2004 (N°1421)
Comment sélectionner et nommer un tableau à nombre variable de lignes ?
Tu peux créer une plage nommée dont l'étendue serait déterminée par une
formule à l'aide de la fonction décaler
Définir une plage de cellules
=DECALER(Feuil1!$B$1;0;0;NBVAL(Feuil1!$B:$B);1)
formule à l'aide de la fonction décaler
Définir une plage de cellules
=DECALER(Feuil1!$B$1;0;0;NBVAL(Feuil1!$B:$B);1)
Laurent Longre, (N°1282)
Comment faire pour selectionner un nbre X de feuilles sans connaitre d'avance le nom des
feuilles avec la fonction array ?.
Voici comment sélectionner les 3 premières feuilles du classeur sans en connaître le nom :
Sheets(Array(Sheets(1).Name, Sheets(2).Name, Sheets(3).Name)).Select
Sheets(Array(Sheets(1).Name, Sheets(2).Name, Sheets(3).Name)).Select
Hervé, (N°1281)
Je voudrais sélectionner des lignes répondant à un critère donné pour les copier en bloc sur
une autre feuille...
En partant du principe que tout ça se passe dans la Feuille
"Feuil1", que le nombre de lignes à examiner soit 20 et que le
critère soit "MonCritère" à vérifier dans la cellule "A" de
chaque ligne (à remplacer par tes valeurs donc) :
Sub JeSelectionne()
i = 1
NombreLignes = 20
While i < NombreLignes + 1
If Cells(i, 1) = MonCritere Then
MesLignes = MesLignes & i & ":" & i & ","
End If
i = i + 1
Wend
MesLignes = Left(MesLignes, Len(MesLignes) - 1)
Sheets("Feuil1").Range(MesLignes).Select
End Sub
Attention tout de même aux limites du nombre de lignes
distinctes admises dans la sélection multiple (255 ?)
"Feuil1", que le nombre de lignes à examiner soit 20 et que le
critère soit "MonCritère" à vérifier dans la cellule "A" de
chaque ligne (à remplacer par tes valeurs donc) :
Sub JeSelectionne()
i = 1
NombreLignes = 20
While i < NombreLignes + 1
If Cells(i, 1) = MonCritere Then
MesLignes = MesLignes & i & ":" & i & ","
End If
i = i + 1
Wend
MesLignes = Left(MesLignes, Len(MesLignes) - 1)
Sheets("Feuil1").Range(MesLignes).Select
End Sub
Attention tout de même aux limites du nombre de lignes
distinctes admises dans la sélection multiple (255 ?)
Catherine et Sainte Zaza, (N°1280)
Je voudrais sélectionner toutes les plages de cellules de ma feuille.
On navigue dans la zone utile (UsedRange).
Si la cellule n'est pas vide et que le currentRegion correspondant n'a pas encore été ajouté,
on l'ajoute à la zone des cellules non vides. Ca donne :
Sub chercheNonVide()
Dim c, celVides, celNonVides As Range
Set celVides = Selection.SpecialCells(xlCellTypeBlanks)
For Each c In ActiveSheet.UsedRange
If Not (IsEmpty(c)) Then
If celNonVides Is Nothing Then
Set celNonVides = c.CurrentRegion
Else
If Intersect(c, celNonVides) Is Nothing Then
Set celNonVides = Union(celNonVides, c.CurrentRegion)
End If
End If
End If
Next c
End Sub
Si la cellule n'est pas vide et que le currentRegion correspondant n'a pas encore été ajouté,
on l'ajoute à la zone des cellules non vides. Ca donne :
Sub chercheNonVide()
Dim c, celVides, celNonVides As Range
Set celVides = Selection.SpecialCells(xlCellTypeBlanks)
For Each c In ActiveSheet.UsedRange
If Not (IsEmpty(c)) Then
If celNonVides Is Nothing Then
Set celNonVides = c.CurrentRegion
Else
If Intersect(c, celNonVides) Is Nothing Then
Set celNonVides = Union(celNonVides, c.CurrentRegion)
End If
End If
End If
Next c
End Sub
Eric Jeanne, (N°1279)
ActiveCell.EntireColumn.Select me permet de selectionner la colonne de la cellule active...
Mais comment selectionner LES colonnes de la plage active ? Même question pour les lignes...
Pour les colonnes :
ActiveCell.CurrentRegion.EntireColumn.Select
Pour les lignes :
ActiveCell.CurrentRegion.EntireRow.Select
Ou : Selection.EntireColumn.Select
ActiveCell.CurrentRegion.EntireColumn.Select
Pour les lignes :
ActiveCell.CurrentRegion.EntireRow.Select
Ou : Selection.EntireColumn.Select
Frédéric Sigonneau, Eric Jeanne, (N°1278)
Comment faire par VBA pour sélectionner la plage de cellules A2:E5 en l'exprimant en fonction
de la cellule A1 (qui peut être variable) ?
En suposant que A1 soit la cellule active :
par VBA,
Range(ActiveCell(2, 1), ActiveCell(5, 5)).Select
te sélectionnes A2:E5.
ou encore :
ActiveCell(2).Resize(4, 5).Select
par VBA,
Range(ActiveCell(2, 1), ActiveCell(5, 5)).Select
te sélectionnes A2:E5.
ou encore :
ActiveCell(2).Resize(4, 5).Select
Alain Vallon, Frédéric Sigonneau, (N°1277)

Comment faire pour masquer toutes les lignes selon les 3 cas suivants... 1°) Toutes les lignes
dont les cellules de la colonne C contiennent "toto" 2°) Toutes les lignes dont les
cellules de la colonne C contiennent "toto" ou "riri" 3°) Toutes les lignes
dont les cellules de la colonne C contiennent un mot qui commence par 'Tou"
Sub toto()
For Each ligne In ActiveSheet.UsedRange.Rows
r = ligne.Row
cherché = Application.Find("toto", Cells(r, 3))
If Not (IsError(cherché)) Then _
Cells(r, 3).EntireRow.Hidden = True
Next
End Sub
Sub totoriri()
For Each ligne In ActiveSheet.UsedRange.Rows
r = ligne.Row
chercheToto = Application.Find("toto", Cells(r, 3))
chercheRiri = Application.Find("riri", Cells(r, 3))
If Not (IsError(chercheToto)) Or Not _
(IsError(chercheRiri)) Then Cells(r, 3).EntireRow.Hidden = True
Next
End Sub
Sub tou()
For Each ligne In ActiveSheet.UsedRange.Rows
r = ligne.Row
chercheTou = Left(Cells(r, 3), 3)
If chercheTou = "Tou" Then Cells(r, 3).EntireRow.Hidden = True
Next
End Sub
Attention, Toto est différent de toto et de TOTO.
autre solution, tu peux mettre un filtre automatique et dans le filtre
de la colonne"C" choisir personnalisé et différent de :toto
ou différent de :Tou?
For Each ligne In ActiveSheet.UsedRange.Rows
r = ligne.Row
cherché = Application.Find("toto", Cells(r, 3))
If Not (IsError(cherché)) Then _
Cells(r, 3).EntireRow.Hidden = True
Next
End Sub
Sub totoriri()
For Each ligne In ActiveSheet.UsedRange.Rows
r = ligne.Row
chercheToto = Application.Find("toto", Cells(r, 3))
chercheRiri = Application.Find("riri", Cells(r, 3))
If Not (IsError(chercheToto)) Or Not _
(IsError(chercheRiri)) Then Cells(r, 3).EntireRow.Hidden = True
Next
End Sub
Sub tou()
For Each ligne In ActiveSheet.UsedRange.Rows
r = ligne.Row
chercheTou = Left(Cells(r, 3), 3)
If chercheTou = "Tou" Then Cells(r, 3).EntireRow.Hidden = True
Next
End Sub
Attention, Toto est différent de toto et de TOTO.
autre solution, tu peux mettre un filtre automatique et dans le filtre
de la colonne"C" choisir personnalisé et différent de :toto
ou différent de :Tou?
Eric Jeanne, isabelle, (N°1276)
Comment faire par VBA des sélections multiples de ligne ?
Union([A:A], [C:C], [E:E]).Select
Il y a une limitation à une trentaine de plage (32 ou 33)
ou
Range("C:C,D:E,G:H").Select
Il y a une limitation à une trentaine de plage (32 ou 33)
ou
Range("C:C,D:E,G:H").Select
Alain Vallon, Iznogood, (N°1275)
Comment sélectionner les cellules à l'intersection des plages nommées toi et moi ?
la formule = toi moi (avec un espace entre les deux plages nommées) te renvoie l'intersection.
Attention si cette intersection est de deux cellules, tu dois dans l'ordre : sélectionner deux
cellules quelconques vides sur ta feuille, taper = toi moi et valider par ctrl, maj et enter
simultanément.
Attention si cette intersection est de deux cellules, tu dois dans l'ordre : sélectionner deux
cellules quelconques vides sur ta feuille, taper = toi moi et valider par ctrl, maj et enter
simultanément.
ChrisV, Flo Cabon, (N°1274)
J'utilise souvent l'opérateur d'intersection. Quand je mets =toto tata, il me donne le chiffre
à l'intersection. je voudrais maintenant écrire toto dans A1 et tata dans A2 et faire une
formule ailleurs qui irait chercher le contenu de A1 et de A2 donc, j'essaie =a1 a2, pensant
que lui va faire =toto tata, mais il essaie de faire l'intersection de A1 et A2, et non pas
l'intersection des noms à l'intérieur...
Sans VBA:
=INDIRECT(A1) INDIRECT(A2)
Et par VBA :
Function INTERS(P1 As String, P2 As String) As Range
Application.Volatile
Set INTERS = Intersect(Range(P1), Range(P2))
End Function
Et dans la feuille : =INTERS(A1;A2)
=INDIRECT(A1) INDIRECT(A2)
Et par VBA :
Function INTERS(P1 As String, P2 As String) As Range
Application.Volatile
Set INTERS = Intersect(Range(P1), Range(P2))
End Function
Et dans la feuille : =INTERS(A1;A2)
Michel Gaboly, Jacques Chaussard, (N°1273)
Comment faire pour sélectionner les cellules de 4 colonnes en 4 colonnes à partir de D8 (donc
D8, H8, L8, P8...) ?
with Range("D8:IV8")
for i=0 to (NbreColonne) Step 3
.cells(1,i+1).select
...
TonCode
...
next i
End With
for i=0 to (NbreColonne) Step 3
.cells(1,i+1).select
...
TonCode
...
next i
End With
Stanislas RB, (N°1272)