Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
lancement auto de macro celon contenu d'une cellule
Re : lancement auto de macro celon contenu d'une cellule
Bonjour Guy
Pourquoi tu parles de thisworkbook, a priori mais il manque sans doute certaines données du problème je mettrais un code dans l'événement change de la feuille en question.
Pour plus de détails mets un fichier en pièce jointe pour que nous puissions avoir plus d'éléments pour te répondre.
Re : lancement auto de macro celon contenu d'une cellule
Salut guy974, Pierrot93, et les autres
j'ai regardé le fichier zippé : voilà ce qui ressort de mes cogitations :
- variables globales à éviter, mais comme je n'ai que la macro test...
dans tout les cas, une ligne pouvant aller jusqu'à 65536, il est préférable de déclarer les variables lignes en LONG
début de la macro à modifier : une formule rend la cellule <> "" => tu pointes pas sur celle que tu attends :
Code:
Sub test()
Dim Linf As Long
Dim Lsup1 As Long
Dim Lsup2 As Long
With Sheets("Enregistrements")
For Linf = .Range("N65536").End(xlUp).Row To 1 Step -1
If .Range("N" & Linf) = "FIN" Then Exit For
Next Linf
Lsup1 = Linf - 4
Lsup2 = Linf - 2
If .Range("N" & Linf) = "FIN" And .Range("O" & Linf) = "" Then
.Range(.Cells(Linf, 13), .Cells(Lsup1, 13)).Copy
Sheets("Feuil1").Select 'feuille cible (carte de contrôle)
Range("A6").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=True
End If
End With
End Sub
c'est nettement meilleur (puisque c'est moi qui l'ai fait )
- tu ne peux pas activer une autre feuille, puisque tu es sur un module de classe lié à une feuille => plantage
Donc tu transfères ta macro :
- Soit sur un module général (ou colonnel)
- Soit sur le module ThisWorkBook
- Soit sur le module lié à la feuille destination
et elle fonctionnera
Comme dit Pierrot93 : une macro automatique se déclenche par une action. Donc à laquelle tu penses ?
A+
Re : lancement auto de macro celon contenu d'une cellule
Bonsoir Gorfael, re Guy
Gorfael, petite question stupide sans doute, pourquoi parles tu de module de "classe" alors que le code se trouve dans la feuille ?
J'avoue que les modules de classes m'interpellent toujours, j ai pas bien saisi leurs utilité a part dans la manipulations des objets et encore !!!
c'est nettement meilleur (puisque c'est moi qui l'ai fait )
- tu ne peux pas activer une autre feuille, puisque tu es sur un module de classe lié à une feuille => plantage
Re : lancement auto de macro celon contenu d'une cellule
Pierrot93 à dit:
Bonsoir Gorfael, re Guy
Gorfael, petite question stupide sans doute, pourquoi parles tu de module de "classe" alors que le code se trouve dans la feuille ?
J'avoue que les modules de classes m'interpellent toujours, j ai pas bien saisi leurs utilité a part dans la manipulations des objets et encore !!!
Déformation Access : c'est peut-être pas la vérité, mais c'est comme ça que je les conçois :
module général = feuille de macro
Module de classe : module général avec des propriétés particulières qui sont définies pour l'ensemble des modules appartenant à la classe
tu as au moins 3 "classes de modules dans Excle
- module lié à une feuille : automatiquement; il admet l'objet sheets et lui attribue des événements spécifiques :change etc....
- module ThisWorkBook il à des propriétés spécifiques :newsheet, etc...
- module USF : initialise, etc...
en gros, la partie (générale) est toujours la même quand ils appartiennent à la même classe
C'est comme les contrôles : prends le cas des combobox, listbox : ils ont les mêmes propriétés, malgrés certaines différences
on parle de classe des qu'un objet appartenant à celle-ci présente les même particularités qui au lieu de demander une définition à chaque fois, sont présente par défaut
Ce site utilise des cookies pour personnaliser le contenu, adapter votre expérience et vous garder connecté si vous vous enregistrez.
En continuant à utiliser ce site, vous consentez à notre utilisation de cookies.