selection de cellules toutes les 23 lignes

  • Initiateur de la discussion bichon
  • Date de début
B

bichon

Guest
salut a tous et a toutes

j'ai un petit problème qui je pense est minime mais la solution me manque
voila je voudrai imprimer des classeurs excels mai avant des les imprimer grace a un bouton
je voudrais inserer des données a certaines endroit de la feuille du classeur
en tout 4 données rentré par des textbox
la premiere donné va dans la cellule V3, la 2eme R2, 3eme X2 ,4 eme U2
voici le code

Private Sub CommandButton1_Click()


Workbooks.Open FileName:="F:\Metachut 2003\Base\Metallis\Ec120met.xls"
ActiveWorkbook.Sheets("MAQUETM").Range("V3").Value = Saisieinfosmeta.TextBox1
ActiveWorkbook.Sheets("MAQUETM").Range("R2").Value = Saisieinfosmeta.TextBox2
ActiveWorkbook.Sheets("MAQUETM").Range("X2").Value = Saisieinfosmeta.TextBox3
ActiveWorkbook.Sheets("MAQUETM").Range("U2").Value = Saisieinfosmeta.TextBox4
' imprime classeur actif
ActiveWindow.SelectedSheets.PrintOut Copies:=1
' ferme sans sauvegarder
ActiveWorkbook.Close savechanges:=True
End sub


ces 4 données que j'inscris dans un textbox se repete toutes les 2 lignes juysqu'a la fin du document
exemple: pour le 1er contenu du textbox il va en V3 V26 V49 ..... jusqu'a que le document soit terminé
il me manque surement apres le rang un xldown special pour dire que c'est 23 ligne plus bas jusqu'a la fin du doc

voila jespere que tout le monde a compris
merci d'avance pour l'aide

bonne soirée et merci

bichon
 
Z

zon

Guest
Bonsoir à tous,


Bichon si c'est une répetition, faire une boucle For qu'on incrémente de 23 à chaque fois
ex:

Dim i as Long


For i=2 to 65536 step 23


ActiveWorkbook.Sheets("MAQUETM").Range("V" & i+1)=Saisieinfosmeta.TextBox1
ActiveWorkbook.Sheets("MAQUETM").Range("R" & i) = Saisieinfosmeta.TextBox2

...
Next i


A+++
 
B

bichon

Guest
salut zon et les autres qui me repondront j'ai essayé ta boucle et on peut dire qu'elle
marche mais elle marche trop bien.
je m'explique
j'ai fait des test sur une feuille excel de 3 pages et jai imprimer et il étit pret a me sortir
2000 et quelque pages les 3 pages rempli comme je voulais plus 1997 autres blanche avec seulement
les indication que j'ai rentré dans les textbox

j'ai était obligé de reduire la plage du for car sinon c'etait impossible
j'aimerai que le for aille de i=2 jusqu'"a la fin du document car il est possible que des pages
se rajoute a lavenir comme ca ne pourrait pas se faire
donc voila il peut y avoir 3 comme 20 pages
aidez moi svp

voici un exemple du code
'Bouton Imprimer

Private Sub CommandButton1_Click()

If Metabase.OptionButton1 = True Then
Workbooks.Open FileName:="F:\Metachut2003\Base\Metallis\Ec120met.xls"
Dim i As Integer
For i = 2 To 70 Step 23
ActiveWorkbook.Sheets("MAQUETM").Range("V" & i + 1).Value = Saisieinfosmeta.TextBox1
ActiveWorkbook.Sheets("MAQUETM").Range("R" & i).Value = Saisieinfosmeta.TextBox2
ActiveWorkbook.Sheets("MAQUETM").Range("X" & i).Value = Saisieinfosmeta.TextBox3
ActiveWorkbook.Sheets("MAQUETM").Range("U" & i).Value = Saisieinfosmeta.TextBox4
Next i
' imprime classeur actif
ActiveWindow.SelectedSheets.PrintOut Copies:=1
' ferme sans sauvegarder
ActiveWorkbook.Close savechanges:=False
End If

je vous remercie d'avance pour votre aide elle est tres precieuse
merci

bichon
 
Z

zon

Guest
Bonsoir à tous,


Bichon, pour récupérer la derniere ligne d'une colonne:


ActiveWorkbook.Sheets("MAQUETM").Range("V65536").end(xlup).row.

cela renvoie un Nbre ex:70 si ta dernière ligne de la colonne V est 70, donc ta boucle devient:

For i = 2 To ActiveWorkbook.Sheets("MAQUETM").Range("V65536").end(xlup).row Step 23

.....

A+++
 
Z

zon

Guest
Re,


Non, dans ton 1er post tu ne précisais rien donc j'ai mis (désolé 65536 au lieu de mettre ....xlup.Row comme d'habitude).

pc23.gif




A+++
 
B

bichon

Guest
Salut zon alors voila j'ai essayé ton code et apparament ca marche que sur la derniere
boucle (sur le "U" cf plus bas)donc est ce que j'ai mal ecris mon code peut etre en tout cas j'ai essayé plusieurs
trucs mais ca marche pas aide moi stp

voici mon code

'Bouton Imprimer

Private Sub CommandButton1_Click()
Dim i As Integer
If Metabase.OptionButton1 = True Then
Workbooks.Open FileName:="F:\Metachut2003\Base\Metallis\Ec120met.xls"
For i = 2 To ActiveWorkbook.Sheets("MAQUETM").Range("V65536").End(xlUp).Row Step 23
ActiveWorkbook.Sheets("MAQUETM").Range("V" & i + 1).Value = Saisieinfosmeta.TextBox1
Next i
For i = 2 To ActiveWorkbook.Sheets("MAQUETM").Range("R65536").End(xlUp).Row Step 23
ActiveWorkbook.Sheets("MAQUETM").Range("R" & i).Value = Saisieinfosmeta.TextBox2
Next i
For i = 2 To ActiveWorkbook.Sheets("MAQUETM").Range("X65536").End(xlUp).Row Step 23
ActiveWorkbook.Sheets("MAQUETM").Range("X" & i).Value = Saisieinfosmeta.TextBox3
Next i
For i = 2 To ActiveWorkbook.Sheets("MAQUETM").Range("U65536").End(xlUp).Row Step 23
ActiveWorkbook.Sheets("MAQUETM").Range("U" & i).Value = Saisieinfosmeta.TextBox4
Next i
' imprime classeur actif
ActiveWindow.SelectedSheets.PrintOut Copies:=1
' ferme sans sauvegarder
ActiveWorkbook.Close savechanges:=False
End If


merci bcp
 
Z

zon

Guest
Bonsoir à tous les couche tards,

Si tu as moins de 23 lignes, c'est normal que rien ne se passe. Par contre tu peux éviter de faire 4 boucles, en 1 seule cela devrait suffir si tes 4 colonnes sont identiques.....





For i = 2 To ActiveWorkbook.Sheets("MAQUETM").Range("V65536").End(xlUp).Row Step 23
ActiveWorkbook.Sheets("MAQUETM").Range("V" & i + 1).Value = Saisieinfosmeta.TextBox1
ActiveWorkbook.Sheets("MAQUETM").Range("R" & i).Value = Saisieinfosmeta.TextBox2
ActiveWorkbook.Sheets("MAQUETM").Range("X" & i).Value = Saisieinfosmeta.TextBox3
ActiveWorkbook.Sheets("MAQUETM").Range("U" & i).Value = Saisieinfosmeta.TextBox4
Next i





A+++
 
B

bichon

Guest
Salut zon ben lol ca marche toujours pas je comprend pas
je t'envoie un zip d'un exemple de feuille ou on doit copier les données des textbox
pour que tu voiscomment ce se presente dans ce cas le step est de 20 sur mon appli c'est bien
23 donc je sais pas quoi faire
je te remet mon code essaye de m'aider stp lol
j'en ai marre de ce problème surtout que je pense qu'il est benin

Option Explicit
Dim i As long

'Bouton Imprimer

Private Sub CommandButton1_Click()

If Metabase.OptionButton1 = True Then
Workbooks.Open FileName:="F:\Metachut2003\Base\Metallis\Ec120met.xls"
For i = 2 To ActiveWorkbook.Sheets("MAQUETM").Range("V65536").End(xlUp).Row Step 23
ActiveWorkbook.Sheets("MAQUETM").Range("V" & i + 1).Value = Saisieinfosmeta.TextBox1
ActiveWorkbook.Sheets("MAQUETM").Range("R" & i).Value = Saisieinfosmeta.TextBox2
ActiveWorkbook.Sheets("MAQUETM").Range("X" & i).Value = Saisieinfosmeta.TextBox3
ActiveWorkbook.Sheets("MAQUETM").Range("U" & i).Value = Saisieinfosmeta.TextBox4
Next i
' imprime classeur actif
ActiveWindow.SelectedSheets.PrintOut Copies:=1
' ferme sans sauvegarder
ActiveWorkbook.Close savechanges:=False
End If

If Metabase.OptionButton2 = True Then

For i = 2 To ActiveWorkbook.Sheets("MAQUETM").Range("V65536").End(xlUp).Row Step 23
Workbooks.Open FileName:="F:\Metachut2003\Base\Metallis\Ec130met.xls"
ActiveWorkbook.Sheets("365met").Range("V" & i + 1).Value = Saisieinfosmeta.TextBox1
ActiveWorkbook.Sheets("365met").Range("R" & i).Value = Saisieinfosmeta.TextBox2
ActiveWorkbook.Sheets("365met").Range("X" & i).Value = Saisieinfosmeta.TextBox3
ActiveWorkbook.Sheets("365met").Range("U" & i).Value = Saisieinfosmeta.TextBox4
Next i
' imprime classeur actif
ActiveWindow.SelectedSheets.PrintOut Copies:=1
' ferme sans sauvegarder
ActiveWorkbook.Close savechanges:=False
End If
.
.
.

end sub

je comprend pas pouquoi on met V65536 et pas 65536 de toute facon aucun des 2 marche
juste cf plus haut quand javez fait les 4 boucles juste la derniere marcher
help

merci
 

Pièces jointes

  • exemplefeuille.zip
    5.7 KB · Affichages: 41

Discussions similaires

Réponses
1
Affichages
1 K
B
Réponses
2
Affichages
1 K
bichon
B
B
Réponses
3
Affichages
1 K
Alain
A

Statistiques des forums

Discussions
314 654
Messages
2 111 598
Membres
111 215
dernier inscrit
fateh