Aide macro excel

Résolu
1234 -  
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour,
Je fais une macro mais je bloque à un endroit!!
J'ai commencé ma sélection de cellules avec la fonction dim mais je ne sais pas comment faire pour l'arrêter à une colonne
Merci par avance!!

Sub macro()

Dim i As Integer
Dim j As Integer
i = 1
j = 1
Range("A1").Select
While Cells(j, 1) <> "Macro"
j = j + 1
Wend
strad = Cells(j, 1).Address
Range(Selection, strad).Select


End Sub
A voir également:

6 réponses

Bidouilleu_R Messages postés 1209 Statut Membre 295
 
Bonjour,

Ce que tu as écris est juste.
tu arrêtes ta selection en ligne sur la colonne 1 quand tu recontres le terme "Macro".

tu as donc choisis une condition est une valeur de critère pour selectionner les lignes.
je te conseille de faire la même chose avec un autre critère
en l'absence de d'informations je ne peux pas t'en dire plus.
0
1234
 
Merci j'ai trouvé la réponse en remplacant 1 par le numéro de la colonne
Mais j'ai un autre probleme maintenant!!
Grâce à cette sélection je voulais faire une mise en page paysage, mais sa ne marche pas.
Je ne comprend pas pourquoi....????

i = 1
j = 1
Range("A1").Select
While Cells(j, 1) <> "Total"
j = j + 1
Wend
strad = Cells(j, 17).Address
Range(Selection, strad).Select
With ActiveSheet.PageSetup
.LeftHeader = "&8&G"
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = "&8&T &D &Z&F &A"
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0.78740157480315)
.BottomMargin = Application.InchesToPoints(0.590551181102362)
.HeaderMargin = Application.InchesToPoints(0.511811023622047)
.FooterMargin = Application.InchesToPoints(0.511811023622047)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = 600
.CenterHorizontally = True
.CenterVertically = False
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
.PrintErrors = xlPrintErrorsDisplayed
End With

Manque-t-il des informations??

merci de ton aide
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
Bonjour,
Y manque rien, bien au contraire... y a beaucoup trop
Mais il faut que la feuille active soit bien la bonne feuille, tu peu remplacer toute les lignes par...
Sheets("NomFeuill".PageSetup.Orientation = xlLandscape
A+

--
L'expérience instruit plus sûrement que le conseil. (André Gide)  
Si tu te cogne à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
0
1234
 
J'ai suivis ton conseil mais il me met qu'il y a une erreur de compilation à cause des . !!!!
0
1234 > 1234
 
d'après ma sélection je veux mettre tout en paysage!!
Comment faire??
0
Bidouilleu_R Messages postés 1209 Statut Membre 295
 
bonjour,


lermite222 t'as donné la solution
essaye ça!

strad = Cells(j, 17).Address
Range(Selection, strad).Select
' attention change le nom de la feuille
Sheets("Feuil1").PageSetup.Orientation = xlLandscape

'supprime le reste
ActiveWindow.SelectedSheets.PrintPreview ' aperçu avant impression
c'est tout!
0
1234
 
sa ne marche pas, il me sélectionne jusqu'à la ligne 4590. donc 10 pages à imprimer alors que j'ai moins de 100 lignes dans mon tableau.
C'est pour cela que j'ai sélectionné avec les dim avant!!
0
Bidouilleu_R Messages postés 1209 Statut Membre 295
 
je te conseillerai de vérifier ta selection dans

Range(Selection, strad).Select

si cela correspond , alors la ligne

Sheets("Feuil1").PageSetup.Orientation = xlLandscape
te donneras une orientation paysage.
et si tu ajoutes cela
cela limite les pages

With ActiveSheet.PageSetup

.FitToPagesWide = 1
.FitToPagesTall = 2


End With

bon courage.
0
1234
 
la page n'est pas un probleme, c'est le nombre de ligne qui varie!!
0

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

Posez votre question
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
Si tu veux imprimer tout ce qui est renseigner sur la feuille..
    With Sheets("Feuil1") 'Adapter le nom de la feuille
        .PageSetup.PrintArea = .Range("A1").SpecialCells(xlCellTypeLastCell).Address
        .Orientation = xlLandscape
    End With

Si tu veux un nombre de colonne bien distinct tu dis
A+
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
L'exemple avec le nombre de colonne fixe et toute les lignes renseignées sur la feuille.
Const Colonne = 10 'adapter au nombre de colonnes à imprimer
    With Sheets("Feuil1") 'Adapter le nom de la feuille
        .PageSetup.PrintArea = Range(.Cells(1, 1), .Cells(.Range("A65536").End(xlUp).Row, Colonne)).Address
        .PageSetup.Orientation = xlLandscape
    End With

Comme ça tu a les deux
A+
0