Selection plage sous excel

thomas1406 Messages postés 17 Date d'inscription mardi 27 janvier 2004 Statut Membre Dernière intervention 29 mai 2010 - 2 juin 2007 à 19:33
thomas1406 Messages postés 17 Date d'inscription mardi 27 janvier 2004 Statut Membre Dernière intervention 29 mai 2010 - 6 juin 2007 à 12:27
Bonsoir,

J' sollicite un peu d'aide.
Je veux selection un plage de cellules sous excel
la plage part obligatoirement de la cellule A1.
La 2eme cellule à une condition ;
Dans un autre fichier j'utilise le code suivant pour selectionner la 2eme cellule:
Dim iRow As Long
        If Cells(iRow, "O").Value = "" And _
            Cells(iRow, "Y").Value = "" Then
            Rows(iRow).SELECTION
        End

Comment ecrire le code pour selectionner une plage allant de A1 a la 2eme cellule conditionnée?

Une fois selectionner, il faut que j'ajoute aussi le code d'impression de cette plage avec une reduction à 78% de la taille normale(pour que ça rentre dans la feuille)

Merci de votre aide.
thomas

11 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 17
2 juin 2007 à 19:47
Salut,

code bizarre..
Tu déclares iRow, d'accord !
Mais tu l'utilises sans lui donner de valeur dans ton If..

Sinon, pour selectionner une plage, c'est pas .Selection, mais .Select

Et pour ta réduction de 78 % :
With ActiveSheet
    .PageSetup.Zoom = 78
    .PrintOut
End With

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
0
thomas1406 Messages postés 17 Date d'inscription mardi 27 janvier 2004 Statut Membre Dernière intervention 29 mai 2010
2 juin 2007 à 23:43
Bonsoir,
merci de votre réponse,
Par contre je suis vraiment débutant ...
Pourriez vous me donner le code qui puisse faire ce que je recherche.
J'ai essayé d'appliquer une valeur au If mais vraiment je nage là.
Auriez vous un exemple pour me montrer le chemin à suivre?
Merci de votre aide.
Thomas
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 17
3 juin 2007 à 14:09
Ok, mais juste une précision :
tu dis que la plage part de A1, mais je ne sais pas jusqu'où..
Quel est la valeur ? Comment la recherches-tu ?

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
0
thomas1406 Messages postés 17 Date d'inscription mardi 27 janvier 2004 Statut Membre Dernière intervention 29 mai 2010
3 juin 2007 à 14:42
Bonjour et merci de ta réponse si rapide.
Pas facile à expliquer ou arrive la plage de selection.
Elle par de A1 et arrive en O(?)
O(?) est defini lorsque sur une ligne (x) les cellules O(x) et Y(x) sont vident.
d'ou le code :
Dim iRow As Long
        If Cells(iRow, "O").Value = "" And _
            Cells(iRow, "Y").Value = "" Then
            Rows(iRow).SELECTION
        End
Mais pour une meilleure explication, je t'ai fait un petit screenshot ici :
http://thomasgibert.info/1.jpg

Merci beaucoup de ton aide, surtout un dimanche.
A bientôt .
Thomas
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 17
3 juin 2007 à 14:59
Ok, alors quelque chose dans ce style là devrait le faire :

    Dim iRow As Long

For iRow = 1 To 65536
    If Cells(iRow, "O").Value = "" And Cells(iRow, "Y").Value = "" Then
        Exit For
    End If
Next i

Range("A1:0" & iRow).Select
~
<small>[code.aspx?ID=39466 Mortalino] ~
Colorisation automatique</small>

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
0
thomas1406 Messages postés 17 Date d'inscription mardi 27 janvier 2004 Statut Membre Dernière intervention 29 mai 2010
3 juin 2007 à 15:19
Re :)

je viens de tester:
Erreur de compilation :
reference de variable de controle incorrecte dans next.

Sub IMPRIMER()
'
' IMPRIMER Macro
' Macro enregistrée le 03/06/2007 par THOMAS
'
' Touche de raccourci du clavier: Ctrl+Maj+I
'
Dim iRow As Long


For iRow = 1 To 65536    If Cells(iRow, "O").Value "" And Cells(iRow, "Y").Value "" Then
        Exit For
    End If
Next i
Range("A1:0" & iRow).Select

De plus if faut que cette selection soit definie comme zone d'impression et reduite à 78% avant d'afficher l'aperçu avant impression.
Je dois controler avant d'imprimer.
Ces dernieres commande, si tu n'a pas le temps, je pourrai les creer avec le suivi des commandes dans excel.
Merci.
A tout de suite si t là.
Mon adresse msn est [mailto:thomas1406@hotmail.com thomas1406@hotmail.com] si c plus pratique pour toi.
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 17
3 juin 2007 à 15:25
Next iRow
(l'habitude de i, désolé)

Côté réduction de 78 %; le code est plus haut. Sinon, tu as aussi deux propriétés :FitToPagesWide 1& .FitToPagesTall 1
Cela sert à ajuster la mise en page sur 1 page

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
0
thomas1406 Messages postés 17 Date d'inscription mardi 27 janvier 2004 Statut Membre Dernière intervention 29 mai 2010
4 juin 2007 à 12:58
Re :)

Cà ne marche toujours pas :(

j'ai mis ce code :
Sub IMPRIMER()
'
' IMPRIMER Macro
' Macro enregistrée le 03/06/2007 par THOMAS
'
' Touche de raccourci du clavier: Ctrl+Maj+I
'
Dim iRow As Long


For iRow = 1 To 65536    If Cells(iRow, "O").Value "" And Cells(iRow, "Y").Value "" Then
        Exit For
    End If
Next iRow
Range("A1:0" & iRow).Select
End Sub

Excel me fait une erreur sur Range...
Sinon comment tu ajoute le code :FitToPagesWide 1& .FitToPagesTall 1
à
With ActiveSheet
    .PageSetup.Zoom = 78
    .PrintOut
End With
?
moi j'ai mis :
With ActiveSheet    FitToPagesWide 1& .FitToPagesTall
    .PrintOut
End With
J'ai enlever la reduction à 78% car je prefere, comme tu me l'a suggeré,  la mise en page sur 1 page.

L'ennui c'est que là non plus ça ne marche pas et que je n'arrive pas à mettre la selection et l'impression à la suite pour une même macro.

Je suis désolé, tu dois me trouver idiot ... :)
Merci
Thomas
0
thomas1406 Messages postés 17 Date d'inscription mardi 27 janvier 2004 Statut Membre Dernière intervention 29 mai 2010
4 juin 2007 à 13:04
AH !! :)
j'ai du nouveau :
Le probleme venait du "O",
tu avais mis un 0.
Par contre la selection se fait vers le haut et non vers le bas
...
Car en fait la selection par de B12 vers O(x)
copie ecran ici :
http://thomasgibert.info/1.jpg

Merci ;)
0
thomas1406 Messages postés 17 Date d'inscription mardi 27 janvier 2004 Statut Membre Dernière intervention 29 mai 2010
4 juin 2007 à 13:20
RE,
J'ai fais avancer la situation,
On y est presque... :)
J'ai mis une valeur dans les cellulles Oet Y jusqu'a O12 et Y12.
Du coup ça selectionne vers le bas.
Dernier probleme :
Dans les cellules O et Y, il y a des formules et non des valeurs, donc seul une ligne est selectionnee...
Voir :
http://thomasgibert.info/2.jpg
a++
Thomas
0
thomas1406 Messages postés 17 Date d'inscription mardi 27 janvier 2004 Statut Membre Dernière intervention 29 mai 2010
6 juin 2007 à 12:27
Salut à tous,
Bon là je nage complétement, décidément j'y arrive pas,

Si il y a quelqu'un par là, je suis tout ouie.

Merci
Thomas
0