Recherche de macro
Bremic83
-
gbinforme Messages postés 15481 Date d'inscription Statut Contributeur Dernière intervention -
gbinforme Messages postés 15481 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous
Une panne m'a coupé tout à l'heure,rendant mon premier envoi totalement incompréhensible,veuillez bien m'en excuser.
Voici ma demande : je cherche une macro pouvant effectuer les tâches décrites dans l'envoi çi-joint,accessible
par le lien çi-dessous.
Merci à celui ou ceux qui s'intéresseront à ma demande.
Bremic83
http://www.cijoint.fr/cjlink.php?file=cj200910/cijosTY7Ra.xlsm
Une panne m'a coupé tout à l'heure,rendant mon premier envoi totalement incompréhensible,veuillez bien m'en excuser.
Voici ma demande : je cherche une macro pouvant effectuer les tâches décrites dans l'envoi çi-joint,accessible
par le lien çi-dessous.
Merci à celui ou ceux qui s'intéresseront à ma demande.
Bremic83
http://www.cijoint.fr/cjlink.php?file=cj200910/cijosTY7Ra.xlsm
A voir également:
- Recherche de macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Rechercher ou entrer l'adresse mm - recherche google - Guide
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Recherche image - Guide
7 réponses
bonjour Bremic83
Ceci devrait le faire dans la feuille concernée :
Ceci devrait le faire dans la feuille concernée :
Private Sub Worksheet_SelectionChange(ByVal sel As Range)
If sel.Column = 6 And sel.Count = 1 Then
sel.Offset(0, -1).Value = sel.Offset(0, -2).Value
sel.Offset(0, -1).Font.ColorIndex = 10
sel.Offset(0, -2).Value = ""
sel.Offset(0, -4).Font.ColorIndex = 3
End If
End Sub
bonjour
Désolé, j'ai abandonné un peu le poste ces jours.
Je t'ai adapté la macro selon tes souhaits sur ton classeur :
http://www.cijoint.fr/cjlink.php?file=cj200911/cijgZVzjCE.xlsm
Pour que cela fonctionne, je t'ai nommé une double plage "paye" ainsi :
à toi d'adapter les plages et le nom éventuel qui se retrouve dans la macro.
Désolé, j'ai abandonné un peu le poste ces jours.
Je t'ai adapté la macro selon tes souhaits sur ton classeur :
http://www.cijoint.fr/cjlink.php?file=cj200911/cijgZVzjCE.xlsm
Pour que cela fonctionne, je t'ai nommé une double plage "paye" ainsi :
=Modèle!$F$5:$F$20;Modèle!$L$5:$L$20
à toi d'adapter les plages et le nom éventuel qui se retrouve dans la macro.
bonjour
Il me semble que la modification par simple sélection peut poser problème alors j'ai mis un test pour éviter de la faire 2 fois et la possibilité de revenir en arrière par un double clic.
http://www.cijoint.fr/cjlink.php?file=cj200911/cijefptC2m.xlsm
à toi de nous dire si c'est mieux.
Il me semble que la modification par simple sélection peut poser problème alors j'ai mis un test pour éviter de la faire 2 fois et la possibilité de revenir en arrière par un double clic.
http://www.cijoint.fr/cjlink.php?file=cj200911/cijefptC2m.xlsm
à toi de nous dire si c'est mieux.
Re gbinforme
Je ne peux pas te dire si l'une est mieux que l'autre,car jusqu'à maintenant,je n'ai pas réussi à les faire fonctionner,ni l'une,ni l'autre .
Sur la première je ne suis pas arrivé à trouver l'endroit où je dois insérer =Modele!$F$5:$F$49;etc..
A chaque essai: fenêtre d'erreur de compilation ou erreur 424,ou autres !!!
Je viens d'essayer de placer la deuxième,ton dernier envoi,là,c'est encore erreur 424
la deuxième ligne de la deuxième macro,recopiée çi-dessous,apparait surlignée en jaune sur toute sa longueur,et le débogage n'indique pas l''endroit où ça coince ,il dit : objet requis .
If Not Intersect(sel, [paye]) Is Nothing And sel.Count = 1 Thenet
Plus je cherche,plus je nage,car les explications données sur "aide" s'adressent à des gens confirmés,et expérimentés,ce qui est loin d'être mon cas.
La nuit porte conseil,dit-on,je vais aller vérifier cet adage.
Bonne nuit
Bremic83
Je ne peux pas te dire si l'une est mieux que l'autre,car jusqu'à maintenant,je n'ai pas réussi à les faire fonctionner,ni l'une,ni l'autre .
Sur la première je ne suis pas arrivé à trouver l'endroit où je dois insérer =Modele!$F$5:$F$49;etc..
A chaque essai: fenêtre d'erreur de compilation ou erreur 424,ou autres !!!
Je viens d'essayer de placer la deuxième,ton dernier envoi,là,c'est encore erreur 424
la deuxième ligne de la deuxième macro,recopiée çi-dessous,apparait surlignée en jaune sur toute sa longueur,et le débogage n'indique pas l''endroit où ça coince ,il dit : objet requis .
If Not Intersect(sel, [paye]) Is Nothing And sel.Count = 1 Thenet
Plus je cherche,plus je nage,car les explications données sur "aide" s'adressent à des gens confirmés,et expérimentés,ce qui est loin d'être mon cas.
La nuit porte conseil,dit-on,je vais aller vérifier cet adage.
Bonne nuit
Bremic83
bonjour
je ne suis pas arrivé à trouver l'endroit où je dois insérer
Tu as deux façons pour le faire :
1 la plus simple :
- tu appuies sur ctrl.
- tu sélectionnes ta plage en colonne F avec la souris.
- tu sélectionnes ta plage en colonne L avec la souris.
- tu vas dans la "zone nom" à gauche de la barre de formule.
- tu saisis ton nom "paye" et tu valides par entrée.
2 la plus complète :
- tu fais menu "formules".
- puis "gestionnaire de noms".
- clic sur "nouveau".
- saisie du "nom" dans la fenêtre.
- puis dans "fait référence" soit tu saisis la formule soit tu sélectionnes tes plages comme précédemment.
- tu valides "ok".
Ensuite, dans les 2 cas, lorsque tu vas cliquer sur la flèche à droite de la "zone nom" tu afficheras les noms définis et en les sélectionnant tu sélectionneras la plage correspondante.
fenêtre d'erreur de compilation ou erreur 424
C'est dû au fait que ta plage nommée n'existe pas.
je ne suis pas arrivé à trouver l'endroit où je dois insérer
Tu as deux façons pour le faire :
1 la plus simple :
- tu appuies sur ctrl.
- tu sélectionnes ta plage en colonne F avec la souris.
- tu sélectionnes ta plage en colonne L avec la souris.
- tu vas dans la "zone nom" à gauche de la barre de formule.
- tu saisis ton nom "paye" et tu valides par entrée.
2 la plus complète :
- tu fais menu "formules".
- puis "gestionnaire de noms".
- clic sur "nouveau".
- saisie du "nom" dans la fenêtre.
- puis dans "fait référence" soit tu saisis la formule soit tu sélectionnes tes plages comme précédemment.
- tu valides "ok".
Ensuite, dans les 2 cas, lorsque tu vas cliquer sur la flèche à droite de la "zone nom" tu afficheras les noms définis et en les sélectionnant tu sélectionneras la plage correspondante.
fenêtre d'erreur de compilation ou erreur 424
C'est dû au fait que ta plage nommée n'existe pas.
Bonjour gbinforme
J'ai tout mis en place,j'ai nommé mes "paye",respectivement Paiements et Recettes et après enregistrement dans la gestion des noms,,ils sont dans la "zône nom",de la barre de formule.
Lorsque je clique sur un des deux noms,la colonne intéressée réagit,sa couleur s'avive brièvement,mais,c'est tout ce qui se passe,il n'y a pas de modification dans les colonnes .
J'ai certainement oublié quelque chose,ce que je cherche depuis ce matin,mais sans succès,hélas !
J'avais modifié ta macro première,comme suit:
Private Sub Worksheet_SelectionChange(ByVal sel As Range)
If sel.Column = 6 And sel.Count = 1 Then
sel.Offset(0, -1).Value = sel.Offset(0, -2).Value
sel.Offset(0, -1).Font.ColorIndex = 10
sel.Offset(0, -2).Value = ""
sel.Offset(0, -4).Font.ColorIndex = 3
End If
If sel.Column = 12 And sel.Count = 1 Then
sel.Offset(0, -1).Value = sel.Offset(0, -2).Value
sel.Offset(0, -1).Font.ColorIndex = 10
sel.Offset(0, -2).Value = ""
sel.Offset(0, -4).Font.ColorIndex = 3
End If
End Sub
et elle fonctionne très bien,mais,compte tenu des interactions qu'elle a dans mes en-têtes,et dans les tableaux inférieurs,j'aurais voulu limiter ses actions dans chaque colonne ,aux cellules F5 à F49,et L5 à L49,ce qui est l'objet de cette discussion.
Je pensais,qu'en modifiant le code,c'était possible,mais je n'y suis pas arrivé,c'est pourquoi j'ai appelé au secours,et je suis navré de t'ennuyer avec celà.
Veux-tu envisager cette possibilité s'il te plait ?
A plus
Bremic83
J'ai tout mis en place,j'ai nommé mes "paye",respectivement Paiements et Recettes et après enregistrement dans la gestion des noms,,ils sont dans la "zône nom",de la barre de formule.
Lorsque je clique sur un des deux noms,la colonne intéressée réagit,sa couleur s'avive brièvement,mais,c'est tout ce qui se passe,il n'y a pas de modification dans les colonnes .
J'ai certainement oublié quelque chose,ce que je cherche depuis ce matin,mais sans succès,hélas !
J'avais modifié ta macro première,comme suit:
Private Sub Worksheet_SelectionChange(ByVal sel As Range)
If sel.Column = 6 And sel.Count = 1 Then
sel.Offset(0, -1).Value = sel.Offset(0, -2).Value
sel.Offset(0, -1).Font.ColorIndex = 10
sel.Offset(0, -2).Value = ""
sel.Offset(0, -4).Font.ColorIndex = 3
End If
If sel.Column = 12 And sel.Count = 1 Then
sel.Offset(0, -1).Value = sel.Offset(0, -2).Value
sel.Offset(0, -1).Font.ColorIndex = 10
sel.Offset(0, -2).Value = ""
sel.Offset(0, -4).Font.ColorIndex = 3
End If
End Sub
et elle fonctionne très bien,mais,compte tenu des interactions qu'elle a dans mes en-têtes,et dans les tableaux inférieurs,j'aurais voulu limiter ses actions dans chaque colonne ,aux cellules F5 à F49,et L5 à L49,ce qui est l'objet de cette discussion.
Je pensais,qu'en modifiant le code,c'était possible,mais je n'y suis pas arrivé,c'est pourquoi j'ai appelé au secours,et je suis navré de t'ennuyer avec celà.
Veux-tu envisager cette possibilité s'il te plait ?
A plus
Bremic83
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bonjour
j'ai nommé mes "paye",respectivement Paiements et Recettes...
,il n'y a pas de modification dans les colonnes .
C'est assez normal car j'avais groupé les 2 plages pour simplifier et ta modification ne doit pas fonctionner.
En effet il faut dans ce cas modifier les macros ainsi et cela fonctionnera :
j'ai nommé mes "paye",respectivement Paiements et Recettes...
,il n'y a pas de modification dans les colonnes .
C'est assez normal car j'avais groupé les 2 plages pour simplifier et ta modification ne doit pas fonctionner.
En effet il faut dans ce cas modifier les macros ainsi et cela fonctionnera :
Private Sub Worksheet_BeforeDoubleClick(ByVal sel As Range, Cancel As Boolean)
Cancel = True
If Not Intersect(sel, Union([Paiements], [Recettes])) Is Nothing And sel.Count = 1 Then
sel.Offset(0, -2).Value = sel.Offset(0, -1).Value
sel.Offset(0, -1).Font.ColorIndex = 10
sel.Offset(0, -1).Value = ""
sel.Offset(0, -4).Font.ColorIndex = 23
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal sel As Range)
If Not Intersect(sel, Union([Paiements], [Recettes])) Is Nothing And sel.Count = 1 Then
If sel.Offset(0, -2).Value <> "" Then
sel.Offset(0, -1).Value = sel.Offset(0, -2).Value
sel.Offset(0, -1).Font.ColorIndex = 10
sel.Offset(0, -2).Value = ""
sel.Offset(0, -4).Font.ColorIndex = 3
End If
End If
End Sub
bonjour
As-tu essayé le classeur du poste 7 sans aucune modification effectuée.
les macros doivent bien être copiée dans la fenêtre appelée par le bouton Visual Basic,ou par la commande Visualiser le code,dans l'onglet Développeur ?
C'est bien cela mais comme ce sont des macros événementielles, elles doivent être mises dans la feuille concernée et pas dans un module.
As-tu essayé le classeur du poste 7 sans aucune modification effectuée.
les macros doivent bien être copiée dans la fenêtre appelée par le bouton Visual Basic,ou par la commande Visualiser le code,dans l'onglet Développeur ?
C'est bien cela mais comme ce sont des macros événementielles, elles doivent être mises dans la feuille concernée et pas dans un module.
Mise en place et essais très satisfaisants.
Un seul mot: MERCI !
A plus
Bremic83
Je suis très satisfait de ta macro,aussi,j'ai voulu l'adapter pour les mêmes fonctions,en partant de la colonne 12,tout en conservant le départ de la colonne 6,(cette dernière concerne les dépenses,la colonne 12 concerne les recettes )
Pas moyen d'y arriver,à chaque tentative : Fenêtre d'erreur de compilation !
Mes connaissances en langage VBA,étant des plus rudimentaires,je t'appelle à la rescousse pour m'indiquer
les corrections à affectuer dans le code.
Merci
Cordialement.
Bremic83
Tu as eu la gentillesse de me concocter une macro dans cette discussion,qui fonctionne très bien,et je t'en remercie.
J'ai réussi à l'adapter pour qu'elle agisse sur les colonnes 6 et 12.
Mais,il se trouve,et je viens seulement de m'en apercevoir depuis hier après midi,qu'elle agit sur toute la longueur des colonnes ,ce qui est normal,mais,elle fausse les tableaux en dessous.
J'ai essayé de changer la zône d'activité,en utilisant les références des cellules,et en déterminant une plage,
sans réussir.
Pourrais-tu,s'il te plait,m'indiquer la marche à suivre pour que la zône d'activité dans les colonnes 6,et 12
soit limitée de la cellule ligne 5 à la cellule ligne 49.
Je t'en remercie,et espère,...à plus.
Bremic83