Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
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 27/11/2006, 10h56   #1
Candidat au titre de Membre du Club
 
Avatar de alex_elder1_1
 
Étudiant
Inscription : novembre 2006
Messages : 82
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2006
Messages : 82
Points : 11
Points : 11
Envoyer un message via MSN à alex_elder1_1 Envoyer un message via Skype™ à alex_elder1_1
Par défaut imprimer avec quelques rajouts

Bjr a tous

Est ce que quelqu'un pourrait m'expliquer la commande qui permet d'imprimer une page excel (en l'occurence ma feuille est sheet1).
Je voudrais lors de l'impression exclure la colonne A mais aussi avoir un decompte des lignes parce qu'une feuille lors de l'impression doit avoir 23 lignes dc je voudrais que mon impressiom selectionne automatiquement ces lignes
merci d'avance
alex_elder1_1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2006, 11h02   #2
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Code :
    Range(Cells(NoLigneDébut, NoColDébut), Cells(NoLigneFin, NoColFin)).PrintOut Copies:=1, Collate:=True
En l'ocurrence, ta colonne début sera B donc 2
A+

Edit
pour avoir la dernière ligne et la dernière colonne de ta plage

Code :
1
2
    DernièreLigne = Range("B1").End(xlDown).Row
    DernièreColonne = Range("B1").End(xlToRight).Column
Cette syntaxe si tu n'as pas de colonne ou de ligne vide dans ta plage.
Si c'est le cas, tu peux essayer
Code :
1
2
    DernièreLigne = Range("A1").SpecialCells(xlCellTypeLastCell).Row
    DernièreColonne = Range("A1").SpecialCells(xlCellTypeLastCell).Column
Et si ta plage est homogène :
Code :
1
2
    DernièreLigne = Range("B1").CurrentRegion.End(xlDown).Row
    DernièreColonne = Range("B1").CurrentRegion.End(xlToRight).Column
A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2006, 11h26   #3
Candidat au titre de Membre du Club
 
Avatar de alex_elder1_1
 
Étudiant
Inscription : novembre 2006
Messages : 82
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2006
Messages : 82
Points : 11
Points : 11
Envoyer un message via MSN à alex_elder1_1 Envoyer un message via Skype™ à alex_elder1_1
excuse moi mais les trois derniers codes que tu me donnes. doisje mettre le 1 obligatoirement ou choisir parmi les trois. les deux derniers pourraient tu m'expliquer un peu plus leur signification. je voudrais en fait avoir la possibilite de chosir la page que je veux imprimer parce que sur ma feuille excel j'ai 400 codes mais chaque page imprimee doit faire 23 codes
merci d'avance

quelqu'un pourrait il m'aider?
alex_elder1_1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2006, 11h59   #4
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Si tu n'as pas de colonne ni ligne entièrement vide dans ta plage de données à imprimer, tu peux utiliser la dernière syntaxe avec CurrentRegion

Si tu as des lignes ou des colonnes entièrement vides mais que tu tiens à imprimer les suivantes, utilise la syntaxe avec SpecialCells(xlCellTypeLastCell).
Par contre, enregistre ton document avant de lancer l'impression, car en cas de suppression de ligne ou de colonne, cette syntaxe te donne toujours, avant enregistrement, le même nombre de lignes ou de colonne, comme s'il n'y avait pas eu de suppression.
Une fois enregistré, le document retrouve ses vraies caractéristiques

Quant à la première, elle est équivalente à la troisième.

C'est toi qui vois
Ai-je bien répondu ?

A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2006, 12h07   #5
Candidat au titre de Membre du Club
 
Avatar de alex_elder1_1
 
Étudiant
Inscription : novembre 2006
Messages : 82
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2006
Messages : 82
Points : 11
Points : 11
Envoyer un message via MSN à alex_elder1_1 Envoyer un message via Skype™ à alex_elder1_1
je te remercie ouskel'n'or pour ton aide j'ai une derniere requete pour finaliser mon projet je dois mettre une fenetre proposant le choix d'imprimer le numero de page que l'on souhaite.
chaqu page comme je te l'ai explique fait 23 codes et je voudrais decomposer mon projet en pages imprimables sachant que j'ai 400 codes en tout
je voudrais ainsi avoir le choix d'imprimer la page que je veux
merci encore
alex_elder1_1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2006, 12h20   #6
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Ouf !
Si "en plus", tu veux imprimer le N° de page (est-ce bien la question ?) la méthode ne consiste pas à indiquer la plage de cellules.
Est-ce le cas ? Si oui, il faut passer par le setup de l'impression.
Ensuite, comment sont disposées tes données, verticalement, horizontalement ou les deux ?
Tu peux nous répondre ?
A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2006, 12h25   #7
Candidat au titre de Membre du Club
 
Avatar de alex_elder1_1
 
Étudiant
Inscription : novembre 2006
Messages : 82
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2006
Messages : 82
Points : 11
Points : 11
Envoyer un message via MSN à alex_elder1_1 Envoyer un message via Skype™ à alex_elder1_1
en fait j'ai un tableau de 400 codes et je voudrais lors de l'impression que ce tableau se divise en pages de 23 codes et que je choisisse la page que je veux imprimer par une commande je t'envoie mon programme si tu veux
le tableau de la page 1 est celui que je veux imprimer
je pense aa la possibilite de copier les lignes que je veux imprimer sur la page print preview et ensuite imprimer cette page. je ne sais pas si c'est une bonne idee
merci d'avance
alex_elder1_1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2006, 12h57   #8
Candidat au titre de Membre du Club
 
Avatar de alex_elder1_1
 
Étudiant
Inscription : novembre 2006
Messages : 82
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2006
Messages : 82
Points : 11
Points : 11
Envoyer un message via MSN à alex_elder1_1 Envoyer un message via Skype™ à alex_elder1_1
ou alors on a la possibilite de selectionner les lignes que je veux imprimer par une commande, ce qui va copier la previsualisation sur print preview et apres ca executera imprimer
alex_elder1_1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2006, 13h03   #9
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Vite fait...
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Dim Plage, DernièreLigne ', etc
    DernièreLigne = Range("B1").End(xlDown).Row
    DernièreColonne = Range("B1").End(xlToRight).Column
    Set Plage = Range(Cells(1, 2), Cells(DernièreLigne, DernièreColonne))
    With Plage 'ActiveSheet.Range(Cells(1, 2), Cells(DernièreLigne, DernièreColonne))
        ActiveSheet.PageSetup.PrintArea = ""
        With ActiveSheet.PageSetup
            .CenterHorizontally = True
            .CenterVertically = True
            .Orientation = xlLandscape
            .FitToPagesWide = 1
            .FitToPagesTall = 18
        End With
    End With
    NoPage = Val(InputBox("Saisir le N° de page à imprimer 1 à 18 : ", "Edition"))
    If NoPage <> 0 Then
        With selection
            .PrintOut From:=NoPage, To:=NoPage, Copies:=1, Collate:=True
        End With
    End If
Si tu veux imprimer la colonne K, suffit de lui mettre un entête (Tu teintes le texte en blanc si tune veux pas le voir apparaître )
A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2006, 13h12   #10
Membre émérite
 
Avatar de BrunoM45
 
Homme
Assistant de Gestion - Responsable Informatique
Inscription : juillet 2003
Messages : 646
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 45
Localisation : France, Loiret (Centre)

Informations professionnelles :
Activité : Assistant de Gestion - Responsable Informatique
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : juillet 2003
Messages : 646
Points : 848
Points : 848
Ou alors,

Pour lancer l'impression de la première feuille par page de 23 lignes :
Code :
1
2
3
4
5
6
7
8
  Dim NumPge, LigDeb, LigFin
  NumPge = InputBox("Quelle page voulez-vous imprimer ?")
  LigDeb = 1 + (23 * (NumPge - 1) * Abs(NumPge > 1)) + 1
  LigFin = 1 + (23 * (NumPge - 1)) + 23
    With ActiveSheet.PageSetup
        .PrintTitleRows = "$1:$1"
    End With
    ActiveSheet.PageSetup.PrintArea = "$B$" & LigDeb & ":$J$" & LigFin
Nota : Je n'utilise pas la méthode du print Preview, avec l'image des lignes

Voilà
__________________
Vous avez la solution à votre problème, pensez au tag :
est une touche qui appelle l'aide : Essayez, c'est assez performant et on trouve plein de choses.

La politesse est comme le zéro, qui, sans avoir de valeur en soi, en ajoute à toutes choses.
BrunoM45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2006, 13h31   #11
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Ok, Bruno, dans mon code, j'imprime entête et pied de page s'ils existent, ainsi que le n° de page. Dans le tiens, je ne sais pas.
Par contre, dans le setup, j'ai effectivement oublié
Citation:
.PrintTitleRows = "$1:$1"
alex_elder1_1, tu insères cette ligne dans le setup avant la ligne "End with"
Merci pour lui
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2006, 13h53   #12
Candidat au titre de Membre du Club
 
Avatar de alex_elder1_1
 
Étudiant
Inscription : novembre 2006
Messages : 82
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2006
Messages : 82
Points : 11
Points : 11
Envoyer un message via MSN à alex_elder1_1 Envoyer un message via Skype™ à alex_elder1_1
merci bcp tous les deux votre boulot m'aide bcp
alex_elder1_1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2006, 13h57   #13
Candidat au titre de Membre du Club
 
Avatar de alex_elder1_1
 
Étudiant
Inscription : novembre 2006
Messages : 82
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2006
Messages : 82
Points : 11
Points : 11
Envoyer un message via MSN à alex_elder1_1 Envoyer un message via Skype™ à alex_elder1_1
petit prob bruno M45 qd je teste ta page le code ne fonctionne pas
alex_elder1_1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2006, 14h12   #14
Candidat au titre de Membre du Club
 
Avatar de alex_elder1_1
 
Étudiant
Inscription : novembre 2006
Messages : 82
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2006
Messages : 82
Points : 11
Points : 11
Envoyer un message via MSN à alex_elder1_1 Envoyer un message via Skype™ à alex_elder1_1
qd je rentre les deux codes j'ai marque ne supporte pas cette methode
est ce normal?
alex_elder1_1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2006, 14h21   #15
Membre émérite
 
Avatar de BrunoM45
 
Homme
Assistant de Gestion - Responsable Informatique
Inscription : juillet 2003
Messages : 646
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 45
Localisation : France, Loiret (Centre)

Informations professionnelles :
Activité : Assistant de Gestion - Responsable Informatique
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : juillet 2003
Messages : 646
Points : 848
Points : 848
Ta feuille n'est t'elle pas protégée !?

Sinon je ne vois pas trop bien, nous avons testé avant de t'envoyer le code !

A+
__________________
Vous avez la solution à votre problème, pensez au tag :
est une touche qui appelle l'aide : Essayez, c'est assez performant et on trouve plein de choses.

La politesse est comme le zéro, qui, sans avoir de valeur en soi, en ajoute à toutes choses.
BrunoM45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2006, 14h23   #16
Candidat au titre de Membre du Club
 
Avatar de alex_elder1_1
 
Étudiant
Inscription : novembre 2006
Messages : 82
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2006
Messages : 82
Points : 11
Points : 11
Envoyer un message via MSN à alex_elder1_1 Envoyer un message via Skype™ à alex_elder1_1
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
 
Private Sub CommandButton4_Click()
 
Dim NumPge, LigDeb, LigFin
  NumPge = InputBox("Choose the page number that you want to print:")
  LigDeb = 1 + (23 * (NumPge - 1) * Abs(NumPge > 1)) + 1
  LigFin = 1 + (23 * (NumPge - 1)) + 23
    With ActiveSheet.PageSetup
        .PrintTitleRows = "$1:$1"
    End With
    ActiveSheet.PageSetup.PrintArea = "$B$" & LigDeb & ":$J$" & LigFin
 
 
Worksheets("Print preview").Activate
  Plage.Select
  selection.Delete
 
Call CopieEcranPartielXls
 
Worksheets("Print preview").Show
 
End Sub
 
Sub CopieEcranPartielXls()
    Worksheets("Sheet1").Plage.CopyPicture xlScreen, xlBitmap
    Worksheets("sheet1").Paste Destination:=Worksheets("Print preview").Range("B2:J24")
End Sub


voila mon code tu peux le verifier steplait vite fait merci d'avance
alex_elder1_1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2006, 14h29   #17
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Un premier truc :
Code :
Worksheets("Print preview").Activate 
'Show, je ne connais pas, sauf pour les userforms (mais je ne connais pas tout...)
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2006, 14h32   #18
Membre émérite
 
Avatar de BrunoM45
 
Homme
Assistant de Gestion - Responsable Informatique
Inscription : juillet 2003
Messages : 646
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 45
Localisation : France, Loiret (Centre)

Informations professionnelles :
Activité : Assistant de Gestion - Responsable Informatique
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : juillet 2003
Messages : 646
Points : 848
Points : 848
Que veux-tu faire avec :
Code :
1
2
  Plage.Select
  selection.Delete
Egalement :
Code :
Worksheets("Print preview").Show
N'est pas bon il faut utiliser :
Code :
ActiveWindow.SelectedSheets.PrintPreview
A+
__________________
Vous avez la solution à votre problème, pensez au tag :
est une touche qui appelle l'aide : Essayez, c'est assez performant et on trouve plein de choses.

La politesse est comme le zéro, qui, sans avoir de valeur en soi, en ajoute à toutes choses.
BrunoM45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2006, 14h33   #19
Candidat au titre de Membre du Club
 
Avatar de alex_elder1_1
 
Étudiant
Inscription : novembre 2006
Messages : 82
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2006
Messages : 82
Points : 11
Points : 11
Envoyer un message via MSN à alex_elder1_1 Envoyer un message via Skype™ à alex_elder1_1
je te fais confiance ne tkt pas
qd je le rectifie il me met objet requis
dsl d'etre chiant comme ca
merci
alex_elder1_1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2006, 14h34   #20
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Oui, Plage, tu la définis où ?
ouskel'n'or 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 15h35.


 
 
 
 
Partenaires

Hébergement Web