bonjour,
ci dessous un code qui ne plante pas mais qui ne fonctionne pas terrible:
Dans un fichier qui comporte env 25 onglets et une fiche recap
depuis la fiche recap qui est un tableau, je veux
- selectionner le nombre de feuilles à copier a partir des onglets
- effacer les onglets qui ne sont pas utiles
Sub essai3()
On Error Resume Next
Dim Name As String, Cal As Range, cell As Range, NomFeuille As String
Sheets("recap").Select
Set Cal = Range("F5:H5")
For Each cell In Cal
If cell <> "" Then
‘avec QU. De feuilles necessaires>1
NomFeuille = Cal.Offset(0, -2).Value
Cal.Offset(0, -3).Select
If Cal.Offset(0, -3) > 1 Then
Sheets(NomFeuille).Copy after:=Sheets(NomFeuille) 'ça marche
ActiveSheet.Range("A4").Value = cell.Offset(-2, 0) 'changer -2 pour ligne
suivante
Name = cell.Offset(0, -2) & cell.Offset(-2, 0).Value 'changer -2 pour ligne
suivante
ActiveSheet.Name = (Name)
‘avec QU. De feuilles necessaires=1
Cal.Offset(0, -3).Select
If Cal.Offset(0, -3) = 1 Then
Cal.Offset(0, -2).Select
NomFeuille = ActiveCell.Value
ActiveSheet.Range("A4").Value = cell.Offset(-2, 0) 'changer -2 pour ligne
suivante
Name = cell.Offset(0, -2) & cell.Offset(-2, 0).Value 'changer -2 pour ligne
suivante
'Name = [A50] & " " & cell.Offset(-3, 0).Value 'ça marche - définit le nom
de la feuille
End If
‘avec QU de feuilles necessaires =0
If Cal.Offset(0, -3) < 1 Then
Cal.Offset(0, -2).Select
Sheets(NomFeuille).Delete
End If
End If
Sheets("recap").Select
cell.Select
End If
Next cell
Sheets("recap").Select
Application.ScreenUpdating = False
End Sub
ça ne marche pas
si je n'ai que d'une feuille, je ne dois pas recopier l'onglet selectionné
mais le code le recopie quand même--
Si un puissant vbatiste voit ou mon modeste code plante ...
merci
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui,
mais à chaque jour suffit sa peine...
Si la recopie s'effectue c'est que la condition qui concerne la partie du code qui en est à l'origine est vérifiée soit :
If Cal.Offset(0, -3) > 1 Then
Il faudrait vérifier la valeur de la cellule déterminé par Cal.Offset(0, -3)
Mets juste avant par exemple ceci :
MsgBox(Cal.Offset(0, -3))
Tu auras cette valeure à chaque tour de boucle Et ainsi de statuer sur le bien fondé de la copie
Fais des essais et dis moi
Tu peux aussi transmettre ton fichier avec le code par ce biais :
http://www.cijoint.fr/index.php
Communiques nous le lien pour le récupérer
Et ainsi de l'analyser
Tiens nous informé !!!!!
gilles
bonjor FFO et merci http://www.cijoint.fr/cjlink.php?file=cj200904/cijqA4lmbh.xls
la macro se trouve en module 5 elle est un peu tarabiscotée car je fais pas mal d'essais infructueux merci dans tous les cas, de ton aide -- en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui, mais à chaque jour suffit sa peine...
"FFO" a écrit :
Salut gilles
Ton exposé sucite en moi cette réflexion
Si la recopie s'effectue c'est que la condition qui concerne la partie du code qui en est à l'origine est vérifiée soit :
If Cal.Offset(0, -3) > 1 Then
Il faudrait vérifier la valeur de la cellule déterminé par Cal.Offset(0, -3)
Mets juste avant par exemple ceci :
MsgBox(Cal.Offset(0, -3))
Tu auras cette valeure à chaque tour de boucle Et ainsi de statuer sur le bien fondé de la copie
Fais des essais et dis moi
Tu peux aussi transmettre ton fichier avec le code par ce biais :
http://www.cijoint.fr/index.php
Communiques nous le lien pour le récupérer
Et ainsi de l'analyser
Tiens nous informé !!!!!
bonjor FFO et merci
http://www.cijoint.fr/cjlink.php?file=cj200904/cijqA4lmbh.xls
la macro se trouve en module 5
elle est un peu tarabiscotée car je fais pas mal d'essais infructueux
merci dans tous les cas, de ton aide
--
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui,
mais à chaque jour suffit sa peine...
"FFO" a écrit :
Salut gilles
Ton exposé sucite en moi cette réflexion
Si la recopie s'effectue c'est que la condition qui concerne la partie du
code qui en est à l'origine est vérifiée soit :
If Cal.Offset(0, -3) > 1 Then
Il faudrait vérifier la valeur de la cellule déterminé par Cal.Offset(0, -3)
Mets juste avant par exemple ceci :
MsgBox(Cal.Offset(0, -3))
Tu auras cette valeure à chaque tour de boucle
Et ainsi de statuer sur le bien fondé de la copie
Fais des essais et dis moi
Tu peux aussi transmettre ton fichier avec le code par ce biais :
bonjor FFO et merci http://www.cijoint.fr/cjlink.php?file=cj200904/cijqA4lmbh.xls
la macro se trouve en module 5 elle est un peu tarabiscotée car je fais pas mal d'essais infructueux merci dans tous les cas, de ton aide -- en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui, mais à chaque jour suffit sa peine...
"FFO" a écrit :
Salut gilles
Ton exposé sucite en moi cette réflexion
Si la recopie s'effectue c'est que la condition qui concerne la partie du code qui en est à l'origine est vérifiée soit :
If Cal.Offset(0, -3) > 1 Then
Il faudrait vérifier la valeur de la cellule déterminé par Cal.Offset(0, -3)
Mets juste avant par exemple ceci :
MsgBox(Cal.Offset(0, -3))
Tu auras cette valeure à chaque tour de boucle Et ainsi de statuer sur le bien fondé de la copie
Fais des essais et dis moi
Tu peux aussi transmettre ton fichier avec le code par ce biais :
http://www.cijoint.fr/index.php
Communiques nous le lien pour le récupérer
Et ainsi de l'analyser
Tiens nous informé !!!!!
gilles
Salut MICHEL merci de tes conseils avisés Je suis un bricoleur/vbatiste occasionnel et j'ai du mal à progresser je regarde tout ça et je vous donne réponse, à toi et FFO Pour info, j'ai posté le fichier dans la précedente réponse merci bien gilles -- en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui, mais à chaque jour suffit sa peine...
"MichDenis" a écrit :
Bonjour Gilles,
Ton code est difficile à lire comme il est écrit. Voici quelques remarques...
A ) L'indentation est un "must"
B ) Il faut éviter lors du développement d'une procédure de mettre sur la première ligne "On Error Resume Next Il faut d'abord s'assurer que dans les meilleures conditons le code écrit s'exécute sans anicroche !
à titre d'exemple : Tu as défini ta variable "NomFeuille" As String Dans ta procédure, tu lui affectes ceci : NomFeuille = Cal.Offset(0, -2).Value La variable Set Cal = Range("F5:H5") Cela signifie que Cal.Offset(0, -2).Value fait référence aux cellules D5:F5
La résultante, cela génère une erreur car tu essaies d'attribuer à une variable String un tableau D5:F5.
Fait le test suivant chez toi dans une procédure à part et observe la plage de cellules sélectionnées à la fin de procédure... et l'erreur générée. Dim NomFeuille As String Sheets("recap").Select Set Cal = Range("F5:H5") Cal.Offset(0, -2).Select NomFeuille = Cal.Offset(0, -2).Value
Pour faire référence seulement à la cellule D5, il aurait fallu que tu utilises ceci Cal.Offset(0, -2)(1,1).Select OU Cal.Offset(0, -2).item(1,1).Select
Il n'est pas surprenant que tu éprouves des difficultés.
C ) Dans ton code, au lieu de faire référence à la feuille active, utilise une variable Objet Worksheet .... comme ça tu es certain de toujours faire référence à cette feuille dans ton code : Dim Sh As Workheets Set Sh = ThisWorkbook.Worksheets("Recap") et tout au long de ton code au lieu d'écrire : ActiveSheet.Range("A4").Value = cell.Offset(-2, 0) tu saisis: Sh.Range("A4").Value = cell.Offset(-2, 0) Cela sera bon peu importe la feuille active au moment de l'exécution de la ligne de code.
Voilà .
"gilles" a écrit dans le message de groupe de discussion :
bonjour, ci dessous un code qui ne plante pas mais qui ne fonctionne pas terrible: Dans un fichier qui comporte env 25 onglets et une fiche recap depuis la fiche recap qui est un tableau, je veux - selectionner le nombre de feuilles à copier a partir des onglets - effacer les onglets qui ne sont pas utiles
Sub essai3() On Error Resume Next Dim Name As String, Cal As Range, cell As Range, NomFeuille As String Sheets("recap").Select Set Cal = Range("F5:H5") For Each cell In Cal If cell <> "" Then
‘avec QU. De feuilles necessaires>1 NomFeuille = Cal.Offset(0, -2).Value Cal.Offset(0, -3).Select If Cal.Offset(0, -3) > 1 Then Sheets(NomFeuille).Copy after:=Sheets(NomFeuille) 'ça marche ActiveSheet.Range("A4").Value = cell.Offset(-2, 0) 'changer -2 pour ligne suivante Name = cell.Offset(0, -2) & cell.Offset(-2, 0).Value 'changer -2 pour ligne suivante ActiveSheet.Name = (Name)
‘avec QU. De feuilles necessaires=1 Cal.Offset(0, -3).Select If Cal.Offset(0, -3) = 1 Then Cal.Offset(0, -2).Select NomFeuille = ActiveCell.Value ActiveSheet.Range("A4").Value = cell.Offset(-2, 0) 'changer -2 pour ligne suivante Name = cell.Offset(0, -2) & cell.Offset(-2, 0).Value 'changer -2 pour ligne suivante 'Name = [A50] & " " & cell.Offset(-3, 0).Value 'ça marche - définit le nom de la feuille End If
‘avec QU de feuilles necessaires =0 If Cal.Offset(0, -3) < 1 Then Cal.Offset(0, -2).Select Sheets(NomFeuille).Delete End If End If
Sheets("recap").Select cell.Select End If Next cell
Sheets("recap").Select Application.ScreenUpdating = False End Sub
ça ne marche pas si je n'ai que d'une feuille, je ne dois pas recopier l'onglet selectionné mais le code le recopie quand même-- Si un puissant vbatiste voit ou mon modeste code plante ... merci en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui, mais à chaque jour suffit sa peine...
Salut MICHEL
merci de tes conseils avisés
Je suis un bricoleur/vbatiste occasionnel et j'ai du mal à progresser
je regarde tout ça et je vous donne réponse, à toi et FFO
Pour info, j'ai posté le fichier dans la précedente réponse
merci bien
gilles
--
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui,
mais à chaque jour suffit sa peine...
"MichDenis" a écrit :
Bonjour Gilles,
Ton code est difficile à lire comme il est écrit.
Voici quelques remarques...
A ) L'indentation est un "must"
B ) Il faut éviter lors du développement d'une procédure de
mettre sur la première ligne "On Error Resume Next
Il faut d'abord s'assurer que dans les meilleures conditons le
code écrit s'exécute sans anicroche !
à titre d'exemple :
Tu as défini ta variable "NomFeuille" As String
Dans ta procédure, tu lui affectes ceci :
NomFeuille = Cal.Offset(0, -2).Value
La variable Set Cal = Range("F5:H5")
Cela signifie que Cal.Offset(0, -2).Value
fait référence aux cellules D5:F5
La résultante, cela génère une erreur car tu essaies d'attribuer à
une variable String
un tableau D5:F5.
Fait le test suivant chez toi dans une procédure à part et observe
la
plage de cellules sélectionnées à la fin de procédure... et
l'erreur générée.
Dim NomFeuille As String
Sheets("recap").Select
Set Cal = Range("F5:H5")
Cal.Offset(0, -2).Select
NomFeuille = Cal.Offset(0, -2).Value
Pour faire référence seulement à la cellule D5, il aurait fallu que
tu utilises ceci
Cal.Offset(0, -2)(1,1).Select OU
Cal.Offset(0, -2).item(1,1).Select
Il n'est pas surprenant que tu éprouves des difficultés.
C ) Dans ton code, au lieu de faire référence à la feuille active,
utilise
une variable Objet Worksheet .... comme ça tu es certain de toujours
faire référence à cette feuille dans ton code :
Dim Sh As Workheets
Set Sh = ThisWorkbook.Worksheets("Recap")
et tout au long de ton code au lieu d'écrire :
ActiveSheet.Range("A4").Value = cell.Offset(-2, 0)
tu saisis:
Sh.Range("A4").Value = cell.Offset(-2, 0)
Cela sera bon peu importe la feuille active au moment de l'exécution
de la ligne de code.
Voilà .
"gilles" <gilles@discussions.microsoft.com> a écrit dans le message de
groupe de discussion :
D736746B-F69B-409C-8CA9-6FD9B5386E82@microsoft.com...
bonjour,
ci dessous un code qui ne plante pas mais qui ne fonctionne pas terrible:
Dans un fichier qui comporte env 25 onglets et une fiche recap
depuis la fiche recap qui est un tableau, je veux
- selectionner le nombre de feuilles à copier a partir des onglets
- effacer les onglets qui ne sont pas utiles
Sub essai3()
On Error Resume Next
Dim Name As String, Cal As Range, cell As Range, NomFeuille As String
Sheets("recap").Select
Set Cal = Range("F5:H5")
For Each cell In Cal
If cell <> "" Then
‘avec QU. De feuilles necessaires>1
NomFeuille = Cal.Offset(0, -2).Value
Cal.Offset(0, -3).Select
If Cal.Offset(0, -3) > 1 Then
Sheets(NomFeuille).Copy after:=Sheets(NomFeuille) 'ça marche
ActiveSheet.Range("A4").Value = cell.Offset(-2, 0) 'changer -2 pour ligne
suivante
Name = cell.Offset(0, -2) & cell.Offset(-2, 0).Value 'changer -2 pour
ligne
suivante
ActiveSheet.Name = (Name)
‘avec QU. De feuilles necessaires=1
Cal.Offset(0, -3).Select
If Cal.Offset(0, -3) = 1 Then
Cal.Offset(0, -2).Select
NomFeuille = ActiveCell.Value
ActiveSheet.Range("A4").Value = cell.Offset(-2, 0) 'changer -2 pour ligne
suivante
Name = cell.Offset(0, -2) & cell.Offset(-2, 0).Value 'changer -2 pour
ligne
suivante
'Name = [A50] & " " & cell.Offset(-3, 0).Value 'ça marche - définit le
nom
de la feuille
End If
‘avec QU de feuilles necessaires =0
If Cal.Offset(0, -3) < 1 Then
Cal.Offset(0, -2).Select
Sheets(NomFeuille).Delete
End If
End If
Sheets("recap").Select
cell.Select
End If
Next cell
Sheets("recap").Select
Application.ScreenUpdating = False
End Sub
ça ne marche pas
si je n'ai que d'une feuille, je ne dois pas recopier l'onglet
selectionné
mais le code le recopie quand même--
Si un puissant vbatiste voit ou mon modeste code plante ...
merci
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire
aujourd'hui,
mais à chaque jour suffit sa peine...
Salut MICHEL merci de tes conseils avisés Je suis un bricoleur/vbatiste occasionnel et j'ai du mal à progresser je regarde tout ça et je vous donne réponse, à toi et FFO Pour info, j'ai posté le fichier dans la précedente réponse merci bien gilles -- en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui, mais à chaque jour suffit sa peine...
"MichDenis" a écrit :
Bonjour Gilles,
Ton code est difficile à lire comme il est écrit. Voici quelques remarques...
A ) L'indentation est un "must"
B ) Il faut éviter lors du développement d'une procédure de mettre sur la première ligne "On Error Resume Next Il faut d'abord s'assurer que dans les meilleures conditons le code écrit s'exécute sans anicroche !
à titre d'exemple : Tu as défini ta variable "NomFeuille" As String Dans ta procédure, tu lui affectes ceci : NomFeuille = Cal.Offset(0, -2).Value La variable Set Cal = Range("F5:H5") Cela signifie que Cal.Offset(0, -2).Value fait référence aux cellules D5:F5
La résultante, cela génère une erreur car tu essaies d'attribuer à une variable String un tableau D5:F5.
Fait le test suivant chez toi dans une procédure à part et observe la plage de cellules sélectionnées à la fin de procédure... et l'erreur générée. Dim NomFeuille As String Sheets("recap").Select Set Cal = Range("F5:H5") Cal.Offset(0, -2).Select NomFeuille = Cal.Offset(0, -2).Value
Pour faire référence seulement à la cellule D5, il aurait fallu que tu utilises ceci Cal.Offset(0, -2)(1,1).Select OU Cal.Offset(0, -2).item(1,1).Select
Il n'est pas surprenant que tu éprouves des difficultés.
C ) Dans ton code, au lieu de faire référence à la feuille active, utilise une variable Objet Worksheet .... comme ça tu es certain de toujours faire référence à cette feuille dans ton code : Dim Sh As Workheets Set Sh = ThisWorkbook.Worksheets("Recap") et tout au long de ton code au lieu d'écrire : ActiveSheet.Range("A4").Value = cell.Offset(-2, 0) tu saisis: Sh.Range("A4").Value = cell.Offset(-2, 0) Cela sera bon peu importe la feuille active au moment de l'exécution de la ligne de code.
Voilà .
"gilles" a écrit dans le message de groupe de discussion :
bonjour, ci dessous un code qui ne plante pas mais qui ne fonctionne pas terrible: Dans un fichier qui comporte env 25 onglets et une fiche recap depuis la fiche recap qui est un tableau, je veux - selectionner le nombre de feuilles à copier a partir des onglets - effacer les onglets qui ne sont pas utiles
Sub essai3() On Error Resume Next Dim Name As String, Cal As Range, cell As Range, NomFeuille As String Sheets("recap").Select Set Cal = Range("F5:H5") For Each cell In Cal If cell <> "" Then
‘avec QU. De feuilles necessaires>1 NomFeuille = Cal.Offset(0, -2).Value Cal.Offset(0, -3).Select If Cal.Offset(0, -3) > 1 Then Sheets(NomFeuille).Copy after:=Sheets(NomFeuille) 'ça marche ActiveSheet.Range("A4").Value = cell.Offset(-2, 0) 'changer -2 pour ligne suivante Name = cell.Offset(0, -2) & cell.Offset(-2, 0).Value 'changer -2 pour ligne suivante ActiveSheet.Name = (Name)
‘avec QU. De feuilles necessaires=1 Cal.Offset(0, -3).Select If Cal.Offset(0, -3) = 1 Then Cal.Offset(0, -2).Select NomFeuille = ActiveCell.Value ActiveSheet.Range("A4").Value = cell.Offset(-2, 0) 'changer -2 pour ligne suivante Name = cell.Offset(0, -2) & cell.Offset(-2, 0).Value 'changer -2 pour ligne suivante 'Name = [A50] & " " & cell.Offset(-3, 0).Value 'ça marche - définit le nom de la feuille End If
‘avec QU de feuilles necessaires =0 If Cal.Offset(0, -3) < 1 Then Cal.Offset(0, -2).Select Sheets(NomFeuille).Delete End If End If
Sheets("recap").Select cell.Select End If Next cell
Sheets("recap").Select Application.ScreenUpdating = False End Sub
ça ne marche pas si je n'ai que d'une feuille, je ne dois pas recopier l'onglet selectionné mais le code le recopie quand même-- Si un puissant vbatiste voit ou mon modeste code plante ... merci en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui, mais à chaque jour suffit sa peine...
MichDenis
Une petite correction :
Dim Sh As Workheets , évidemment vous aurez lui Dim Sh As Workheet sans "S"
Une petite correction :
Dim Sh As Workheets , évidemment vous aurez lui Dim Sh As Workheet sans "S"
If Cal.Offset(0, -3) = 1 et If Cal.Offset(0, -3) < 1
par
If ActiveCell = 1 et If ActiveCell < 1
Celà devrait mieux fonctionner
Dis moi !!!!!
gilles
RE bonjour Merci de ton suivi ci dessous la dernière version qui tient comte des observations de MICHDENIS module 5 je regarde tes observations ce soir merci encore à toi et Michel http://www.cijoint.fr/cjlink.php?file=cj200904/cijmZCjJfc.xls
-- en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui, mais à chaque jour suffit sa peine...
"FFO" a écrit :
Rebonjour Gilles
Changes la ligne :
If Cal.Offset(0, -3) > 1 Then
par
If ActiveCell > 1 Then
de même pour
If Cal.Offset(0, -3) = 1 et If Cal.Offset(0, -3) < 1
par
If ActiveCell = 1 et If ActiveCell < 1
Celà devrait mieux fonctionner
Dis moi !!!!!
RE bonjour
Merci de ton suivi
ci dessous la dernière version qui tient comte des observations de MICHDENIS
module 5
je regarde tes observations ce soir
merci encore à toi et Michel
http://www.cijoint.fr/cjlink.php?file=cj200904/cijmZCjJfc.xls
--
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui,
mais à chaque jour suffit sa peine...
"FFO" a écrit :
Rebonjour Gilles
Changes la ligne :
If Cal.Offset(0, -3) > 1 Then
par
If ActiveCell > 1 Then
de même pour
If Cal.Offset(0, -3) = 1
et
If Cal.Offset(0, -3) < 1
RE bonjour Merci de ton suivi ci dessous la dernière version qui tient comte des observations de MICHDENIS module 5 je regarde tes observations ce soir merci encore à toi et Michel http://www.cijoint.fr/cjlink.php?file=cj200904/cijmZCjJfc.xls
-- en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui, mais à chaque jour suffit sa peine...
"FFO" a écrit :
Rebonjour Gilles
Changes la ligne :
If Cal.Offset(0, -3) > 1 Then
par
If ActiveCell > 1 Then
de même pour
If Cal.Offset(0, -3) = 1 et If Cal.Offset(0, -3) < 1
par
If ActiveCell = 1 et If ActiveCell < 1
Celà devrait mieux fonctionner
Dis moi !!!!!
FFO
Rebonjour Gilles
Tans ta nouvelle version l'avant dernier End If est en trop Donc à supprimer Avec cette ultime modification celà semble fonctionner
Donnes nous des nouvelles !!!!!!
Rebonjour Gilles
Tans ta nouvelle version l'avant dernier End If est en trop
Donc à supprimer
Avec cette ultime modification celà semble fonctionner
Tans ta nouvelle version l'avant dernier End If est en trop Donc à supprimer Avec cette ultime modification celà semble fonctionner
Donnes nous des nouvelles !!!!!!
gilles
Bonjour, désolé pour le retard ci joint la dernière mouture qui tient compte de votre aide. ça marche pas mal mais il subsiste les pb suivants: - si j'ai besoin d'une seule feuille, j'utilise et renomme l'onglet de base (ex: plateforme devient plateformeAMENAGTGX) de ce fait là l'onglet d'origine n'existe plus et quand la boucle repasse elle ne trouve pas l'onglet - Quand cal F5:H5 est fini, je dois attaquer la ligne suivante soit F6:H6 et ainsi de suite Puis-je renommer cal et à quel moment le mettre
Si vous êtes encore sur le fil merci de votre aide à venir, sinon un grand merci pour vos remarques de pro à+ -- en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui, mais à chaque jour suffit sa peine...
"FFO" a écrit :
Rebonjour Gilles
Tans ta nouvelle version l'avant dernier End If est en trop Donc à supprimer Avec cette ultime modification celà semble fonctionner
Donnes nous des nouvelles !!!!!!
Bonjour,
désolé pour le retard
ci joint la dernière mouture qui tient compte de votre aide.
ça marche pas mal mais il subsiste les pb suivants:
- si j'ai besoin d'une seule feuille, j'utilise et renomme l'onglet de
base (ex: plateforme devient plateformeAMENAGTGX)
de ce fait là l'onglet d'origine n'existe plus et quand la boucle repasse
elle ne trouve pas l'onglet
- Quand cal F5:H5 est fini, je dois attaquer la ligne suivante soit F6:H6
et ainsi de suite
Puis-je renommer cal et à quel moment le mettre
Si vous êtes encore sur le fil merci de votre aide à venir, sinon un grand
merci pour vos remarques de pro
à+
--
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui,
mais à chaque jour suffit sa peine...
"FFO" a écrit :
Rebonjour Gilles
Tans ta nouvelle version l'avant dernier End If est en trop
Donc à supprimer
Avec cette ultime modification celà semble fonctionner
Bonjour, désolé pour le retard ci joint la dernière mouture qui tient compte de votre aide. ça marche pas mal mais il subsiste les pb suivants: - si j'ai besoin d'une seule feuille, j'utilise et renomme l'onglet de base (ex: plateforme devient plateformeAMENAGTGX) de ce fait là l'onglet d'origine n'existe plus et quand la boucle repasse elle ne trouve pas l'onglet - Quand cal F5:H5 est fini, je dois attaquer la ligne suivante soit F6:H6 et ainsi de suite Puis-je renommer cal et à quel moment le mettre
Si vous êtes encore sur le fil merci de votre aide à venir, sinon un grand merci pour vos remarques de pro à+ -- en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui, mais à chaque jour suffit sa peine...
"FFO" a écrit :
Rebonjour Gilles
Tans ta nouvelle version l'avant dernier End If est en trop Donc à supprimer Avec cette ultime modification celà semble fonctionner
Donnes nous des nouvelles !!!!!!
gilles
Re bonjour en fait mon truc ne marche pas si bien que ça: dans cal F5:X5 la boucle saisit chaque cellule et copie et renomme l' onglet dont le nom est en cal.offset (-2,0) ...sauf que quand il passe de F5 à H5 ça devrait êtreoffset(-4 ,0)...et (-6, 0) pour J5 Comment puis-je lui imposer de toujours se référer à D5 ? Merci Gilles -- en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui, mais à chaque jour suffit sa peine...
"MichDenis" a écrit :
Une petite correction :
Dim Sh As Workheets , évidemment vous aurez lui Dim Sh As Workheet sans "S"
Re bonjour
en fait mon truc ne marche pas si bien que ça:
dans cal F5:X5 la boucle saisit chaque cellule et copie et renomme l' onglet
dont le nom est en cal.offset (-2,0)
...sauf que quand il passe de F5 à H5 ça devrait êtreoffset(-4 ,0)...et (-6,
0) pour J5
Comment puis-je lui imposer de toujours se référer à D5 ?
Merci
Gilles
--
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui,
mais à chaque jour suffit sa peine...
"MichDenis" a écrit :
Une petite correction :
Dim Sh As Workheets , évidemment vous aurez lui Dim Sh As Workheet sans
"S"
Re bonjour en fait mon truc ne marche pas si bien que ça: dans cal F5:X5 la boucle saisit chaque cellule et copie et renomme l' onglet dont le nom est en cal.offset (-2,0) ...sauf que quand il passe de F5 à H5 ça devrait êtreoffset(-4 ,0)...et (-6, 0) pour J5 Comment puis-je lui imposer de toujours se référer à D5 ? Merci Gilles -- en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui, mais à chaque jour suffit sa peine...
"MichDenis" a écrit :
Une petite correction :
Dim Sh As Workheets , évidemment vous aurez lui Dim Sh As Workheet sans "S"
gilles
merci MICHEL OK je regarde ça j'ai trouvé des soluces en tenant compte de tes observations mais il reste des trucs bizarres à+ -- en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui, mais à chaque jour suffit sa peine...
"MichDenis" a écrit :
Une petite correction :
Dim Sh As Workheets , évidemment vous aurez lui Dim Sh As Workheet sans "S"
merci MICHEL
OK je regarde ça
j'ai trouvé des soluces en tenant compte de tes observations
mais il reste des trucs bizarres
à+
--
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui,
mais à chaque jour suffit sa peine...
"MichDenis" a écrit :
Une petite correction :
Dim Sh As Workheets , évidemment vous aurez lui Dim Sh As Workheet sans
"S"
merci MICHEL OK je regarde ça j'ai trouvé des soluces en tenant compte de tes observations mais il reste des trucs bizarres à+ -- en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui, mais à chaque jour suffit sa peine...
"MichDenis" a écrit :
Une petite correction :
Dim Sh As Workheets , évidemment vous aurez lui Dim Sh As Workheet sans "S"