Macro qui ne s applique pas aux onglets selectionnés
Résolu
CHARLYJACK
Messages postés
345
Date d'inscription
Statut
Membre
Dernière intervention
-
CHARLYJACK Messages postés 345 Date d'inscription Statut Membre Dernière intervention -
CHARLYJACK Messages postés 345 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Macro qui ne s applique pas aux onglets selectionnés
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Restaurer les onglets chrome - Guide
- Jitbit macro recorder - Télécharger - Confidentialité
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Application pour voir qui regarde mon profil facebook gratuit - Guide
3 réponses
Bonjour,
Déjà.. tu as un souci sur ton IF
En gros si la feuille n'est pas Feuil1 ..... ou Feuil2 ... (donc si je suis la feuille1.. je ne suis pas la deux.. et inversement....)......
A mon avis ... il faudrait un AND à la place du OR.
Ensuite... à mon avis... ceci
Devrait se trouver DANS ta boucle....
Penses également à préfixer les RANGE(...) ... par la FEUILLE sur laquelle doit s'appliquer la "selection".
Par exemple :
Bon .. après... je ne sais pas ce que tu veux réellement faire avec ta macro... et il est conseillé d'éviter de faire des copier/coller ....
Par exemple tu pourrais, si mes souvenirs sont bons, remplacer le code ci-dessus par :
Cordialement,
Jordane
Déjà.. tu as un souci sur ton IF
If ws.Name <> "Feuil1" Or ws.Name <> "Feuil2" Then
En gros si la feuille n'est pas Feuil1 ..... ou Feuil2 ... (donc si je suis la feuille1.. je ne suis pas la deux.. et inversement....)......
A mon avis ... il faudrait un AND à la place du OR.
If ws.Name <> "Feuil1" AND ws.Name <> "Feuil2" Then
Ensuite... à mon avis... ceci
Mois = Range("P8").Value
Devrait se trouver DANS ta boucle....
Penses également à préfixer les RANGE(...) ... par la FEUILLE sur laquelle doit s'appliquer la "selection".
Par exemple :
Ws.Range("P9:P595").Select selection.Copy Sheets("Feuil1").Range("BA9").Select selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Bon .. après... je ne sais pas ce que tu veux réellement faire avec ta macro... et il est conseillé d'éviter de faire des copier/coller ....
Par exemple tu pourrais, si mes souvenirs sont bons, remplacer le code ci-dessus par :
Sheets("Feuil1").Range("BA9:BA595").value = Ws.Range("P9:P595").value
Cordialement,
Jordane
je souhaite coller la colonne P
en BA pour janvier
en BB pour février
en BC pour mars ....
Le mois est en P8
La colonne P de quelle feuille ?
Coller en BA BB BC... de quelle feuille ?
Le mois est en P8 ..... dans QUELLE FEUILLE ???
Avant de parler de boucle... commence par nous expliquer EXACTEMENT comment doit fonctionner ta macro (en précisant ce que viennent faire les différents onglets ! )
Tu peux également (donc en plus de l'explication demandée ci-dessus...) nous mettre un fichier Exemple à disposition via le site : cijoint.com par exemple.
https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers
Bonsoir,
j'ai mis un exemple d onglet sous le chemin suivant :
http://www.cjoint.com/c/FBxwCxyzVgP
En fait j ai une trentaine d onglets dans ce style, et 2 ou 3 qui sont des consolidations.
J aimerais que chaque mois et que pour chacun des onglet de ce type
la colonne P soit Copier Coller valeur en BA, puis en BB le mois suivant ....
le fait de coller la colonne P chaque mois me permettra d avoir un historique sur la même page et de déterminer la consommation mensuelle .
merci de ton aide
j'ai mis un exemple d onglet sous le chemin suivant :
http://www.cjoint.com/c/FBxwCxyzVgP
En fait j ai une trentaine d onglets dans ce style, et 2 ou 3 qui sont des consolidations.
J aimerais que chaque mois et que pour chacun des onglet de ce type
la colonne P soit Copier Coller valeur en BA, puis en BB le mois suivant ....
le fait de coller la colonne P chaque mois me permettra d avoir un historique sur la même page et de déterminer la consommation mensuelle .
merci de ton aide
Essayes ça :
Sub test() Dim sh As Worksheet Dim valCelP8 As String Dim ColCopie As Long Dim RngToSave As Range Dim RngSource As Range For Each sh In ThisWorkbook.Worksheets sh.Activate If sh.Name <> "Feuil1" And sh.Name <> "Feuil2" Then 'Plage de cellules à sauvegardes Set RngSource = sh.Range("P9:P595") 'Valeur de la cellule P8 valCelP8 = sh.Range("P8").Value 'On regarde dans quel cas on se trouve : Select Case valCelP8 Case "Jan" ColCopie = 53 'Ba Case "Fev" ColCopie = 54 'Bb Case Else Debug.Print "Feuille : " & sh.Name & "-> Valeur inconnue" Resume Next End Select 'On définie la plage où sauvegarder Set RngToSave = sh.Range(Cells(9, ColCopie), Cells(595, ColCopie)) 'Sauvegarde des valeurs Debug.Print "Feuille : " & sh.Name & "-> Copie des valeurs dans la colonne " & ColCopie RngSource.Copy Destination:=RngToSave End If Next End Sub
Bonjour Jordane45,
Le copier coller ne s effectue toujours pas.
J avais un problème sur Resume next il fallait noter On error Resume next.
Quand je décompose la macro en F8 elle passe bien sur l ensemble des feuilles.
Par contre sur cette ligne:
RngSource.Copy Destination:=RngToSave
Quelque soit la page le Rngtosave = Noting.
En tout cas merci de ton aide
Le copier coller ne s effectue toujours pas.
J avais un problème sur Resume next il fallait noter On error Resume next.
Quand je décompose la macro en F8 elle passe bien sur l ensemble des feuilles.
Par contre sur cette ligne:
RngSource.Copy Destination:=RngToSave
Quelque soit la page le Rngtosave = Noting.
En tout cas merci de ton aide
1 - **** Attention ****
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
2 - Essayes ce code :
et dis moi ce que ça te mets dans la fenêtre d'exécution.
Vérifies également le contenu de la variable : valCelP8 ... est-ce que tu y retrouves les différents mois tels que décris dans le SELECT CASE ?
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
2 - Essayes ce code :
Sub test() Dim sh As Worksheet Dim valCelP8 As String Dim ColCopie As Long Dim RngToSave As Range Dim RngSource As Range For Each sh In ThisWorkbook.Worksheets sh.Activate If sh.Name <> "Feuil1" And sh.Name <> "Feuil2" And sh.Name <> "Feuil3" And sh.Name <> "Feuil40" And sh.Name <> "Feuil41" And sh.Name <> "Feuil68" And sh.Name <> "Feuil71" And sh.Name <> "Feuil75" And sh.Name <> "Feuil86" Then 'Plage de cellules à sauvegardes Set RngSource = sh.Range("P9:P595") 'Valeur de la cellule P8 valCelP8 = sh.Range("P8").Value 'On regarde dans quel cas on se trouve : Select Case valCelP8 Case "Jan" ColCopie = 53 'Ba Case "Fev" ColCopie = 54 'Bb Case "Mar" ColCopie = 55 'Bc Case "Apr" ColCopie = 56 'Bd Case "May" ColCopie = 57 'Be Case "Jun" ColCopie = 58 'Bf Case "Jul" ColCopie = 59 'Ba Case "Aug" ColCopie = 60 'Bb Case "Sep" ColCopie = 61 'Bc Case "Oct" ColCopie = 62 'Bd Case "Nov" ColCopie = 63 'Be Case "Dec" ColCopie = 64 'Bf Case Else Debug.Print "Feuille : " & sh.Name & "-> Valeur inconnue" ColCopie = 0 End Select If ColCopie <> 0 Then 'On définie la plage où sauvegarder Set RngToSave = sh.Range(Cells(9, ColCopie), Cells(595, ColCopie)) 'Sauvegarde des valeurs Debug.Print "Feuille : " & sh.Name & "-> Copie des valeurs dans la colonne " & ColCopie RngSource.Copy Destination:=RngToSave Else Debug.Print "Feuille : " & sh.Name & " -> ColCopie =" & ColCopie & " /!\ Aucune valeur ne correspond : " & valCelP8 End If End If Next End Sub
et dis moi ce que ça te mets dans la fenêtre d'exécution.
Vérifies également le contenu de la variable : valCelP8 ... est-ce que tu y retrouves les différents mois tels que décris dans le SELECT CASE ?
Le blocage venait effectivement de la description des mois,
j'ai rectifié ça fonctionne,
mon seul et dernier problème c'est que la colonne P n'est pas copiée en valeur,
donc pour chaque onglet ça me demande si il doit rafraichir les liens et en plus ça risque de fausser le résultat.
merci beaucoup en tout cas
j'ai rectifié ça fonctionne,
mon seul et dernier problème c'est que la colonne P n'est pas copiée en valeur,
donc pour chaque onglet ça me demande si il doit rafraichir les liens et en plus ça risque de fausser le résultat.
merci beaucoup en tout cas
Malheureusement je ne trouve pas de solution,
je souhaite coller la colonne P
en BA pour janvier
en BB pour février
en BC pour mars ....
Le mois est en P8
Je veux le faire pour l ensemble des feuilles du classeur sauf 4 ou 5.
La boucle ne fonctionne pas même avec une manipulation plus simple
Je continue de chercher et vous tiens au courant !
Encore merci pour le coup de main