AutomaVB
Résolu
Bonjour,
Je veux terminer cette macro mais je n'y arrive pas:
ce que je veux faire c ajouter un p au début de la macro que je peux faire varier(dans la 1ère macro ci dessous c le cas particulier ou p=60 de DC à FJ y'a 60 colonnes comme de AU à DC, et pour la deuxième en dessou c p=40), ca serait plus facile de partir de la dernière colonne(celle ou ya les derniers chiffres dans la Feuil1 du fichier ci-joint:
http://www.cijoint.fr/cjlink.php?file=cj201101/cijgMdNsm1.xls
J'ai essayé avec la fonction Offset mais j'arrive pas.
Donc avec cette macro c le cas particulier ou p=60
Sub CCM()
Const imax = 1200
Dim lig As Long
Dim f1 As String, f2 As String, f3 As String, f4 As String
lig = 20
For i = 2 To imax Step 2
f1 = "=product('Coef Mul Titre Large Ret1m'!$DC$" & lig & ":$FJ$" & lig & ")-1"
f2 = "=Feuil1!$DB$" & lig
f3 = "=product('Coef Mul Titre Large Ret1m'!$AU$" & lig & ":$DC$" & lig & ")-1"
f4 = "=Feuil1!$AT$" & lig
Range("A" & i).Formula = f1
Range("B" & i).Formula = f2
Range("A" & (i + 1)).Formula = f3
Range("B" & (i + 1)).Formula = f4
lig = lig + 1
Next i
End Sub
Avec celle ci c'est le cas particulier ou p=40(résultat dans l'onglet p=40)
Sub CCM()
'cas p = 40
Const imax = 1800
Dim lig As Long
Dim f1 As String, f2 As String, f3 As String, f4 As String, f5 As String, f6 As String
lig = 20
For i = 2 To imax Step 3
f1 = "=product('Coef Mul Titre Large Ret1m'!$DW$" & lig & ":$FJ$" & lig & ")-1"
f2 = "=Feuil1!$DV$" & lig
f3 = "=product('Coef Mul Titre Large Ret1m'!$CJ$" & lig & ":$DW$" & lig & ")-1"
f4 = "=Feuil1!$CI$" & lig
f5 = "=product('Coef Mul Titre Large Ret1m'!$AW$" & lig & ":$CJ$" & lig & ")-1"
f6 = "=Feuil1!$AV$" & lig
Range("A" & i).Formula = f1
Range("B" & i).Formula = f2
Range("A" & (i + 1)).Formula = f3
Range("B" & (i + 1)).Formula = f4
Range("A" & (i + 2)).Formula = f5
Range("B" & (i + 2)).Formula = f6
lig = lig + 1
Next i
End Sub
Merci d'avance pour votre aide
Je veux terminer cette macro mais je n'y arrive pas:
ce que je veux faire c ajouter un p au début de la macro que je peux faire varier(dans la 1ère macro ci dessous c le cas particulier ou p=60 de DC à FJ y'a 60 colonnes comme de AU à DC, et pour la deuxième en dessou c p=40), ca serait plus facile de partir de la dernière colonne(celle ou ya les derniers chiffres dans la Feuil1 du fichier ci-joint:
http://www.cijoint.fr/cjlink.php?file=cj201101/cijgMdNsm1.xls
J'ai essayé avec la fonction Offset mais j'arrive pas.
Donc avec cette macro c le cas particulier ou p=60
Sub CCM()
Const imax = 1200
Dim lig As Long
Dim f1 As String, f2 As String, f3 As String, f4 As String
lig = 20
For i = 2 To imax Step 2
f1 = "=product('Coef Mul Titre Large Ret1m'!$DC$" & lig & ":$FJ$" & lig & ")-1"
f2 = "=Feuil1!$DB$" & lig
f3 = "=product('Coef Mul Titre Large Ret1m'!$AU$" & lig & ":$DC$" & lig & ")-1"
f4 = "=Feuil1!$AT$" & lig
Range("A" & i).Formula = f1
Range("B" & i).Formula = f2
Range("A" & (i + 1)).Formula = f3
Range("B" & (i + 1)).Formula = f4
lig = lig + 1
Next i
End Sub
Avec celle ci c'est le cas particulier ou p=40(résultat dans l'onglet p=40)
Sub CCM()
'cas p = 40
Const imax = 1800
Dim lig As Long
Dim f1 As String, f2 As String, f3 As String, f4 As String, f5 As String, f6 As String
lig = 20
For i = 2 To imax Step 3
f1 = "=product('Coef Mul Titre Large Ret1m'!$DW$" & lig & ":$FJ$" & lig & ")-1"
f2 = "=Feuil1!$DV$" & lig
f3 = "=product('Coef Mul Titre Large Ret1m'!$CJ$" & lig & ":$DW$" & lig & ")-1"
f4 = "=Feuil1!$CI$" & lig
f5 = "=product('Coef Mul Titre Large Ret1m'!$AW$" & lig & ":$CJ$" & lig & ")-1"
f6 = "=Feuil1!$AV$" & lig
Range("A" & i).Formula = f1
Range("B" & i).Formula = f2
Range("A" & (i + 1)).Formula = f3
Range("B" & (i + 1)).Formula = f4
Range("A" & (i + 2)).Formula = f5
Range("B" & (i + 2)).Formula = f6
lig = lig + 1
Next i
End Sub
Merci d'avance pour votre aide
30 réponses
Résumé de la discussion
On cherche à modifier une macro VBA pour intégrer un paramètre p et démarrer les calculs à partir de la dernière colonne détectée, p=60 couvrant DC à FJ et p=40 DW à CJ. Plusieurs réponses suggèrent de partir de FJ et de se décaler par pas fixes, ou de remplacer FJ par une détection automatique de LastColumn via xlToLeft. L’une des solutions avancées est une macro AutomaVB qui calcule LastColumn, crée des feuilles pour p et remplit les formules sur plusieurs lignes avec des références dynamiques. Des échanges indiquent aussi l’intérêt de clarifier le rôle de p et de préciser le ciblage des plages et des feuilles pour éviter des ajustements manuels répétés.
-
re
j'ai essayé en vrai grandeur sur ma machine avec les valeurs suivantes
i = ideb '=20 jmax = (lastcolumn - 13) \ pp imax = 619 ' derniere ligne actuelle imax = jmax * (imax - ideb) + ideb ' pour un essai mettre 100
les durées d'exécution
pour p = 2 > 10 secondes
pour p = 10 > 2 secondes
ce qui est prudent, c'est qu'avant de lancer le tout
- controler en faisant un suivi des variable pour une execution
- faire quelques essais en augmentant progressivement la valeur de imax,
- tenter une seule valeur de p pour la vraie valeur de imax
plus d'une heure, ça ne me parait pas bon.
es tu sur d'avoir initialise la valeur de imax
imax = 619 pour mon classeur ou LastLine- je crois dans ton code)
avant de le recalculer en fonction de jmax ...
Si tu ne l'as pas fait, tu te retrouves avec une valeur negative de imax qui va etre impossible a atteindre dans la boucle (qui va etre infinie)
while i < imax
ce qui pourrait expliquer ton pb de durée d'execution
bonne suite -
Encorec merci pour ton aidela macro je l'ai lancé y'à 1h , elle est pas encore terminé'( quand je mets imx = 4300 donc jusqu'à la fin), tu connais pas un truc à rajouter pour l'accélérer, parce que elle me plante complètement le pc, ca me bloque tout, jpeus rien faire d'autre en atendant
Merci -
re
pour la 1° question,
ce que je comprends,
tu veux que lig decrive l'intervalle 20-619
si c'est ça :
jmax étant le nombre de lignes "i" pour une ligne "lig", il y a jmax fois moins de lignes "lig" que de lignes "i", il suffit de changer le controle du
While i < imax
par
While i < jmax*(imax-ideb)+ideb
tu peux aussi redefinir imax avant : imax = jmax*(imax-ideb)+ideb
ex pour p = 10 si imax = 70, il faut (70-20)*10+20-20 lignes "i" , pour que "lig" atteigne 50 (-20 puisqu'on commence a ideb=20)
pour la 2° question
ton code est correct, je ne vois pas mieux
tu peux peut etre enlever l'option de recalcul auto pour accelerer
a la main ou en VBA avec
Application.Calculation = xlManual
et en ressortant
Application.Calculation = xlAutomatic
bonne suite -
Merci d'etre encore là, dernière chose.
Pour ca
lig = 20
lig = lig + 1
j'arrive pas à le remplacer par
For lig = 20 To 619
Next lig
Ca permet de calculer indirectement le imax.
pour que la macro sache ou s'aréter et ne pas continuer dans le vide tout en bas des feuilles ceer et mettre des -1 partout en colonne B et des 0 partout en colonne C.
et quand y'a des cellules vides en colonne C dans les feuilles créer ca m'interresse pas j'aimerai supprimer toutes ces lignes mais avec mon code c trop long:For i = Derlig To 20 Step -1
If Cells(i, 3) = "" Then Rows(i).Delete
Next
Merci. -
re
quelques remarques
- j'avoue que j'ai toujours du mal a comprendre la gestion des paquets
- je considere que ton code correspond a ce que tu veux exactement
ceci etant précisé,
- les variables ne sont pas toutes déclarées (il faut absolument plus de rigueur)
- j n'a pas été initialisé (avec un while ce n'est pas très bon)
- j'ai remplacé le while j par ton ancien essai for j (qui marche bien)
- lig = lig+1 a l'air correct
- ton code modifié
Sub AutomaVB() Const co1 = 2 Const co2 = 3 Const FCoeff = "'Coef Mul Titre Large Ret1m'" Const f1 = "'Feuille1'" Const ideb = 20 Dim lig As Long, col1 As Long, col2 As Long, i As Long, j As Long, pp As Long Dim a1 As String, b1 As String Dim NomFeuille As String Dim NbFeuilles As Long Dim lastcolumn As Long, lastrow As Long, colder As Long, p As Long, imax As Long, jmax As Long With Sheets("Coef Mul Titre Large Ret1m") lastcolumn = .Cells(20, .Columns.Count).End(xlToLeft).Column End With colder = lastcolumn imax = 70 'ici a modifier avec le nb de lignes For p = 3 To 4 Step 1 ' creation de la feuille p pp = 6 * p NomFeuille = "p=" & pp NbFeuilles = Sheets.Count Sheets.Add ActiveSheet.Name = NomFeuille Sheets(NomFeuille).Move after:=Sheets(Sheets.Count) ' remplir la feuille NomFeuille lig = 20 i = ideb jmax = (lastcolumn - 13) \ pp While i < imax col1 = colder - pp + 1 col2 = colder For j = 1 To jmax a1 = "=product(" & FCoeff & "!R" & lig & "C" & col1 & ":" & "R" & lig & "C" & col2 & ")-1" b1 = "=" & f1 & "!R" & lig & "C" & col1 - 1 Cells(i, co1).FormulaR1C1 = a1 Cells(i, co2).FormulaR1C1 = b1 i = i + 1 col1 = col1 - pp col2 = col2 - pp Next j lig = lig + 1 Wend Next p End Sub
bon courage !!! -
c ca que je veux, j'arrive pas à débuger mais c exactement ce que je veux:
Sub AutomaVB()
With Sheets("Coef Mul Titre Large Ret1m")
LastColumn = .Cells(20, .Columns.Count).End(xlToLeft).Column
End With
Const co1 = 2
Const co2 = 3
colder = LastColumn
Const FCoeff = "'Coef Mul Titre Large Ret1m'"
Const f1 = "'Feuille1'"
Const ideb = 20
Dim lig As Long, col1 As Long, col2 As Long, i As Long, j As Long, pp As Long
Dim a1 As String, a2
Dim NomFeuille As String
Dim NbFeuilles As Long
For p = 3 To 10 Step 1
' creation de la feuille p
NomFeuille = "p=" & (p * 6)
NbFeuilles = Sheets.Count
Sheets.Add
ActiveSheet.Name = NomFeuille
Sheets(NomFeuille).Move after:=Sheets(Sheets.Count)
' remplir la feuille p
lig = 20
imax = 70
pp = 6 * p
i = ideb
While i < imax
col1 = colder - pp + 1
col2 = colder
'For j = 1 To (LastColumn - 13) / pp j'aimerai avoir ca _
mais en prenant l'entier le plus proche de (LastColumn - 13) / pp pour cette boucle mais comme j'arrive pas _
je rajoute un While
While j <= (LastColumn - 13) / pp
a1 = "=product(" & FCoeff & "!R" & lig & "C" & col1 & ":" & "R" & lig & "C" & col2 & ")-1"
b1 = "=" & f1 & "!R" & lig & "C" & col1 - 1
j = j + 1
Cells(i, co1).FormulaR1C1 = a1
Cells(i, co2).FormulaR1C1 = b1
i = i + 1
col1 = col1 - pp
col2 = col2 - pp
Wend
'Next j
lig = lig + 1'Il est ici le bug
Wend
Next p
End Sub
Merci c fini c juste un problème de nug maintenant. Merci -
Sub Window()
With Sheets("Coef Mul Titre Large Ret1m")
LastColumn = .Cells(20, .Columns.Count).End(xlToLeft).Column
End With
LastLine = Range("Feuille1!A65536").End(xlUp).Row
Const co5 = 5
Const co6 = 6
colder = LastColumn
Const FCoeff = "'Coef Mul Titre Large Ret1m'"
Const f1 = "'Feuille1'"
Const ideb = 20
Dim lig As Long, col1 As Long, col2 As Long, i As Long, j As Long, pp As Long
Dim a1 As String, a2
Dim NomFeuille As String
Dim NbFeuilles As Long
For p = 3 To 10 Step 1
' creation de la feuille p
NomFeuille = "p=" & (p * 6)
NbFeuilles = Sheets.Count
Sheets.Add
ActiveSheet.Name = NomFeuille
Sheets(NomFeuille).Move after:=Sheets(Sheets.Count)
' remplir la feuille p
lig = 20
'imax = (p * LastLine) - ((p - 1) * 19)
pp = 6 * p
i = ideb
'While i < imax
col1 = colder - pp + 1
col2 = colder
For j = 1 To p
a1 = "=product(" & FCoeff & "!R" & lig & "C" & col1 & ":" & "R" & lig & "C" & col2 & ")-1"
b1 = "=" & f1 & "!R" & lig & "C" & col1 - 1
Cells(i, co1).FormulaR1C1 = a1
Cells(i, co2).FormulaR1C1 = b1
i = i + 1
col1 = col1 - pp
col2 = col2 - pp
Next j
lig = lig + 1
'Wend
Next p
End Sub
Alors voila ce qui faudrait mais j'ai un bug depuis hier que j'arive pas à corriger
si jreprends ton commentaire:si on bouge de 6 en 6, pour moi, on coupe en p = 20 (120/20 = 6)
on bouge de 6 en 6 ton sens ici ca veut dire en colonne dans la feuille Coef Mul Titre Large Ret1m, mais moi je voulais dire ca depuis le début: For p = 3 To 10 Step 1
' creation de la feuille p
NomFeuille = "p=" & (p * 6)
Y'a que ca comme bug le reste ca n'a pas l'air d'etre faux
Merci encore d'etre rester avec moi.
Cindy001 -
jréponds pas encore parceque j'essai de la terminer par rapport à
puis j'aimerai ensuite les cas 54, 48, 42, 36 jusqu'à 12(12 c le dernier cas que j'ai dis ou on coupe en 10(120/10)......on bouge de 6 en 6 à partir de FJ
'si on bouge de 6 en 6, pour moi, on coupe en p = 20 (120/20 = 6) , si on coupe en 20 c le cas 6, puis j'essai d'ajouter la boucle: for p = 6 To 60 Step 6 pour tous les autres cas'
en fait j'essaie de partir de la dernière collone que j'ai fais calculer automatiquement en fesant:
With Sheets("Coef Mul Titre Large Ret1m")
LastColumn = .Cells(20, .Columns.Count).End(xlToLeft).Column
End With
et de là faire le décalage de 6 en 6 jusqu'à ce qu'il y a plus de chiffre(dans la feuille Coef Mul Titre Large Ret1m) pour faire le product dans les formules.
jte réponds quand je peux, si j'arrive ou pas. -
re
aïe, c'est la premiere fois que tu me dis qu'on peut deborder par la gauche (avant la colonne 47), moi qui me faisais du souci pour la relation entre p, la taille des paquets et le nombre fatidique 120 !!!!
j'ai amenage un peu pour que ça reponde a la nouvelle question,
j'ai mis toute l'initialisation des données dans la feuille F0, ce sera a toi de remplir selon les besoins avant de lancer la creation de la feuille,
RQ1. la valeur de p est calculée donc ne pas y toucher.
RQ2. si tu dois modifier d'autres données, tu peux completer la feuille F0 et bien sur la procedure CreationFeuille (Module 7)
RQ3. J'ai traité le cas p = 10 qui correspond à ton Cas 5, ça colle
http://www.cijoint.fr/cjlink.php?file=cj201101/cij3p48aVN.xls
RQ4. dans ton Cas2, les paquets ne sont pas disjoints
ligne 20 > C107-166
ligne 21 > C47-C107
etc ..
alors que dans ton cas 5 elle sont bien disjointes
ligne 20 > C155-166
ligne 21 > C143-C154
etc ..
???
bonne suite -
C pour ca que j'avais dis on part de FJ, et on bouge de 6 en 6, le découpage AU:FJ j'en ai parlé pour me faire comprendre car au début si tu trapeles j'avais du mal.
Mais pour le cas 24, 24*5=120 donc on ira bien jusqu'à AU cad 120 colonnes avant FJ, pour 60 c pareil, car c aussi un multiple de 120, 60*2, mais tous les autres cas 12, 18,(24 on l' déja) 30, 36, 42, 48, et 54 on s'arretera donc pas en AU(avant) mais c pas grave le but c d'aller aussi loin qu'on peut avant FJ, donc jusqu'à qu'on à plus de chiffre dans la feuille Feuille1, donc jusqu'à qu'on a plus de chiffres pour calculer a1 et b1.
Mais je pense que j'y arriverai, jpense qu'avec ta macro c facilement modifiable.
Premièrement, jcommencerai par remplacer Const colder = 166 par Const colder = DernièreColonne, en lui fesant calculer automatiquement ce DernièreColonne.....
Jte tiendrai au courant car j'ai pas excel chez moi.
Merci encore bonne fin de we -
re
en relisant ton dernier post, j'ai encore quelques doutes, donc je re-précise comment j'ai compris/traité le decoupage
- le cas p=5 correspond au decoupage de C47:C166 (AU:FJ) en 5 paquets de 120/5 = 24 colonnes (166:143 , 142:119 , ... , 70:47)
- donc pour p (obligatoirement diviseur de 120) on découpe C47:C166 en p paquets de 120/p
puis j'aimerai ensuite les cas 54, 48, 42, 36 jusqu'à 12(12 c le dernier cas que j'ai dis ou on coupe en 10(120/10)......on bouge de 6 en 6 à partir de FJ
si on bouge de 6 en 6, pour moi, on coupe en p = 20 (120/20 = 6)
sur mon envoi, j'ai traité le cas p = 10,
enfin, tu verifies avec les cas que tu as déjà fabriqués et tu dis ...
bonne suite -
bon jpeux pas rgarder la parceque j'ai pas excel chez moi mais comme t'as compris ce que je voulais jpense que t'as bien traité ca:(c ce que j'avais mis plus haut le 12 jan 2011 à 23:33)
on coupe en 2: on aura 60 et 60 colonnes(120/2)
puis j'aimerai ensuite les cas 54, 48, 42, 36 jusqu'à 12(12 c le dernier cas que j'ai dis ou on coupe en 10(120/10)......on bouge de 6 en 6 à partir de FJ
quand jdisais à la fin 120 , puis 120/2(p = 2), puis 120/3 (p =3)....., c'était pour que tu saisisses le truc, qui était un peu difficile à expliquer.
Mais bon c peut etre ce que t'as fais.
Alors Merci jpourrais rgarder ca que lundi. -
re
j'ai rajouté la creation et le remplissage des feuilles selon la valeur de p > feuille F0, (p =2 correspond a ton 60, p = 3 à ton 40 etc ... )
http://www.cijoint.fr/cjlink.php?file=cj201101/cijYHPIBGu.xls
les modules deviennent inutiles (sauf module 6 qui contient le code) et pourront etre supprimes
si c'est bon, il te faudra modifier dans le code de CreerFeuille, les valeurs de col1, col2 et imax
bonne suite -
ContributeurBonjour le forum,
J'ai parcouru le topic en diagonal et je compte pas aller plus loin, mais ce qui me fait intervenir c'est... pourquoi faire une macro qui insère une formule plutôt que de mettre directement la fonction qui génère la réponse. ???
Ce serait quand même plus rationnel.
A+ -
re
as tu
- regarde le la feuille cas 5 de mon dernier post
(clic-droit sur l'onglet/Visualiser le code)
- mis ton bouton dans la feuille a remplir
- mis un bouton avec la boite a outils controle
Au cas où !!
- Affichage/boite a outils controle/
- passer en mode creation (le petit triangle bleu)
- clic-clic sur le bouton pour passer a l'editeur VB
- et mettre le code entre Private Sub CommandButton1_Click() et end sub
- repasser en mode execution (le petit triangle bleu)
bonne suite -
j'avou que je ne suis pas assez fort en vb pour comprendre tout de suite .
j'ai mis un bouton sur la feuille j'y ai mis le code.
Mais quend je clique dessus il se passe.
Jconnais pas trop ca, peut-etre faut il que je rajoute mon code avant le End Sub avec??
jvais continuer à essayer de le comprendre il mfaut ptere juste un peu de temps
Merci de rseter avec moi -
re
j'ai toujours des pb pour me connecter au site !!!
au vu de ton dernier envoi, il y a bien cette fois une logique de découpage selon la valeur de p
du coup, le code est grandement simplifié
- tu mets un bouton (avec la boite a outils controle) dans la feuille
- tu y attaches le code suivant
Const p = 10 Const imax = 70 Const co1 = 5 'j'ai execute en colonnes 4 et 5 Const co2 = 6 Const colder = 166 Const FCoeff = "'Coef Mul Titre Large Ret1m'" Const f1 = "'Feuil1'" Const ideb = 20 ' ligne 1 feuille cas = 3 Dim lig As Long, col1 As Long, col2 As Long, i As Long, j As Long, pp As Long Dim a1 As String, a2 as string lig = 20 pp = 120 \ p i = ideb While i < imax col1 = colder - pp + 1 col2 = colder For j = 1 To p a1 = "=product(" & FCoeff & "!R" & lig & "C" & col1 & ":" & "R" & lig & "C" & col2 & ")-1" b1 = "=" & f1 & "!R" & lig & "C" & col1 - 1 Cells(i, co1).FormulaR1C1 = a1 Cells(i, co2).FormulaR1C1 = b1 i = i + 1 col1 = col1 - pp col2 = col2 - pp Next j lig = lig + 1 Wend
- tu changes la valeur de p
- et les valeurs de constantes col1 et col2 (colonnes pour l'affichge des resultats)
http://www.cijoint.fr/cjlink.php?file=cj201101/cij2tl7Lkx.xls
RQ1. on peut aussi passer la valeur de p en parametre à la procedure, histoire de n'avoir qu'un seul exemplaire du code
RQ2. pijaku a reglé le problème de la creation des onglets donc ...
bonne suite -
Merci de répondre merci à vous deux
http://www.cijoint.fr/cjlink.php?file=cj201101/cijpb4ged3.xls
Je veux juste une macro qui soit capable de me créer ces onglets( que j'ai appelé Cas1...cas6 mais peu importe les noms) automatiquement avec ces formules à l'interieur dépendant des 3 premières feuilles, mon idée du Offset n'est peut etre pas terrible mais peut importe la méthode ou fonction utiliser.
J'ai 6 macros que j'ai lancé chacune dans un onglet que j'ai créer à la main.
Mais je crois que c trop dur à faire?-
ModérateurBon je n'ai touché à rien dans le code, je n'ai même pas cherché à en comprendre le but.
Ce que j'ai fait par contre :
création du module : "création onglets" dans lequel j'ai automatisé la création des feuilles et réunit les 6 macros.
Vous dites...
http://www.cijoint.fr/cjlink.php?file=cj201101/cijldex3Ga.xls
-
-
Ok
donc tu comprends ce que je voulais faire maintenant
mais bon c peut etre impossible d'aller aussi loin dans l'automatisation.
meme si raisonner en terme de L C plutot que mettre les lettres des colonnes FJ... c'était une bonne idée
sinon t'as rien touché aux macros t'as juste changé dans les formules FJ en C166..... à la main.
Merci quand meme d'avoir regardé -
re
j'ai repris ton dernier envoi
en essayant d'automatiser le cas p = 3
j'ai mis un bouton sur cette feuille et code la procedure
MAIS il y a pb voir RQ dans le code du bouton
http://www.cijoint.fr/cjlink.php?file=cj201101/cijG2lkuuj.xls
tu peux toujours t'en inspirer pour les cas suivants, mais si on veut vraiment automatiser, , il faut regler le pb des tailles de paquets
bonne suite-
ModérateurSalut ccm81,
Avant de me pencher sur le problème en cours, je désirais attirer ton attention sur la déclaration de variables. Tu dis, dans ton code VBA ne pas être obligé de déclarer toutes les variables, car cela fonctionne. Il faut déclarer systématiquement toutes les variables utilisées dans la macro! Voici deux liens cadeaux :
http://www.info-3000.com/vbvba/variableconstante.php
et surtout :
ftp://ftp-developpez.com/silkyroad/VBA/LesVariables/LesVariables.pdf
Si tu veux être sur de ne jamais oublier de déclarer tes variables, commence systématiquement tes macros par :
Option Explicit
Sub ...()
Cordialement,
-
- 1
- 2
Suivant