Afficher une plage dans une autre plage
itpassatisfaisntparcequejenarrivepaslorsuejincrementebeaucoupdef
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour
je cherche a afficher automatiquement une plage vers une autre plage sous condition (chaque fois qu'une cellule sera égale a OK)
pouvez vous me dire ce qui ne va pas dans mon code
Merci de votre aide
je cherche a afficher automatiquement une plage vers une autre plage sous condition (chaque fois qu'une cellule sera égale a OK)
pouvez vous me dire ce qui ne va pas dans mon code
Merci de votre aide
Private Sub linkrg(target As Range, source As Range)
source.Copy
target.Parent.Activate
target.Select
target.Parent.Paste link:=True
Application.CutCopyMode = False
End Sub
Option Compare Text
Sub RecopiePlage()
Application.ScreenUpdating = False
Cpt = 0
If [AX101] = "Ok" Then
Call linkrg([CK11:CS51], [BA101:BI141])
ElseIf [AX144] = "Ok" Then
Call linkrg([CK11:CS51], [BA144:BI184])
ElseIf [AX187] = "Ok" Then
Call linkrg([CK11:CS51], [BA187:BI227])
ElseIf [AX230] = "Ok" Then
Call linkrg([CK11:CS51], [BA230:BI270])
ElseIf [AX273] = "Ok" Then
Call linkrg([CK11:CS51], [BA230:BI270])
End If
End Sub
| EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
3 réponses
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour,
la ligne avec Cpt est inutile, et la ligne "Option Compare Text" doit être en début de module.
sans doute mieux d'ajouterApplication.ScreenUpdating = True
à la fin deSub RecopiePlage()
, donc juste avant leend sub
. -
Bonjour
j en ai un sadoul
avec 4 petites lignes ça marche même si c 'est pas automatise et avec un code a ne plus en finir ca marche pas et il ne se passe rien
je l ai écrit comme cela et il me retourne utilisation incorrecte de la propriété(CutCopyMode)
Option Compare Text Private Sub linkrg(target As Range, source As Range) source.Copy target.Parent.Activate target.Select target.Parent.Paste link:=True Application.CutCopyMode End Sub Sub RecopiePlage() Application.ScreenUpdating = True If [AX101] = "Ok" Then Call linkrg([CK11:CS51], [BA101:BI141]) ElseIf [AX144] = "Ok" Then Call linkrg([CK11:CS51], [BA144:BI184]) ElseIf [AX187] = "Ok" Then Call linkrg([CK11:CS51], [BA187:BI227]) ElseIf [AX230] = "Ok" Then Call linkrg([CK11:CS51], [BA230:BI270]) ElseIf [AX273] = "Ok" Then Call linkrg([CK11:CS51], [BA230:BI270]) End If End Sub
-
je viens de m apercevoir que j avais omis de mettre False maintenant ca marche mais pas comme ca devrait c'est pas en automatique et aussi je pense que il va falloir sélectionner en dernier une cellule a cote de la plage ;sinon la procédure laisse la plage du graphe grisée
mais le truc c' est que pour le moment c'est inexploitable puisque il faut activer la macro apparemment
a moins que lorsque les DDE vont fonctionner la procédure se fera toute seule
je vais enlevé un OK manuellement pour tester