Copie de Macro: changer nom de page et colonnes de travail

Nougatine95

XLDnaute Occasionnel
Bonjour le Forum,

Suis de nouveau à quémander, j'essaie de faire le maximum seule mais là après quelques essais sans résultat, je reviens vers vous.

Soit 2 pages: page1 et page2
Je travaille uniquement sur page1
en page2 colE, colF, colG ---> ma liste de base
quand j'écris page1 en colE, les colF et colG se remplissent auto à partir de ce qu'elles connaissent de la page2 colE, colFet colG
Voici le code savamment élaborer par l'un d'entre vous:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Application.Intersect(Target, Range("E:E")) Is Nothing Then Exit Sub
    
    With Worksheets("page2").Range("E2:E" & Worksheets("page2").Range("E20000").End(xlUp).Row)
    Set c = .Find(Target.Value, LookIn:=xlValues, lookat:=xlWhole)
        If Not c Is Nothing Then
        Target.Offset(0, 1) = c.Offset(0, 1)
        Target.Offset(0, 2) = c.Offset(0, 2)
        Else
        Range(cell.Offset(0, 1), cell.Offset(0, 2)) = "?"
        End If
    End With

Target.Offset(1, 0).Activate

End Sub


Voici ma question:
Je copie ce code pour nouvelle macro légèrement différente, car là tout se passe en page1 pas de récup de données en page2.
Quand j'écris en colB, je souhaite récupérer en colC le nom qu'il connait si déjà associé sur lignes du dessus. ColB est du chiffre (env 8 caractères), colC est une chaîne de mots.
Que dois-je modifier du 1er code?
Peut-être est-ce trop demandé si pas de fichier à vous mettre sous les yeux, dans ce cas je ne pourrai le mettre qu'en soirée.

Merci.
Bonne journée à tous.
 

James007

XLDnaute Barbatruc
Re : Copie de Macro: changer nom de page et colonnes de travail

Bonjour Nougatine,

Dans le genre "défi pour équilibriste" ... tu es très créative ...;)
SI j'ai compris ta demande ...

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Application.Intersect(Target, Range("B:B")) Is Nothing Then Exit Sub
    
    With ActiveSheet.Range("C2:C" & ActiveSheet.Target.Offset(-1,1).Row)
    Set c = .Find(Target.Value, LookIn:=xlValues, lookat:=xlWhole)
        If Not c Is Nothing Then
             Target.Offset(0, 1) = c.Offset(0, 1)
        Else
            Target.Offset(0, 1) = "?"
        End If
    End With
Target.Offset(1, 0).Activate

End Sub

Dis-moi si le hasard fait bien les choses ... ou pas ...

A+
 

Dull

XLDnaute Barbatruc
Re : Copie de Macro: changer nom de page et colonnes de travail

Salut nougatine, le Forum

peut-être cela

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Range
If Application.Intersect(Target, Range("B:B")) Is Nothing Then Exit Sub
    
    With Range("B2:B" & Range("B20000").End(xlUp).Row)
    Set C = .Find(Target.Value, LookIn:=xlValues, lookat:=xlWhole)
        If Not C Is Nothing Then
        Target.Offset(0, 1) = C.Offset(0, 1)
        Target.Offset(0, 2) = C.Offset(0, 2)
        Else
        Range(C.Offset(0, 1), C.Offset(0, 2)) = "?"
        End If
    End With

Target.Offset(1, 0).Activate

End Sub
Mais pas sur

EDITION: Salut James pasraffraichit
Bonne Journée
 

Nougatine95

XLDnaute Occasionnel
Re : Copie de Macro: changer nom de page et colonnes de travail

;) Merci James007, merci Dull

La 2nde proposition fonctionne, à condition que je supprime la Macro que j'ai citée plus haut.
Alors j'ai renommé simplement Worksheet_Change de diverses façons, car doublon de nom, mais nenni pas de résultat quand je les installe toutes les 2.
Je vous autorise à me traiter de débutante ou d'équilibriste... :D
Une petite aide supplémentaire serait la bienvenue.

Merci pour votre patience.
 

Pierrot93

XLDnaute Barbatruc
Re : Copie de Macro: changer nom de page et colonnes de travail

Bonjour Nougatine, Dull:) , James

tu as bien mis le code proposé dans le module de la feuille concernée, pour ce faire click droit sur l'onglet => visualiser le code et tu colles.

Attention il s'agit de macros événementielles, pour une même feuille, tu ne peut avoir qu'une seule procédure du même type d'événement comme "Worksheet_Change"...

bonne fin d'après midi
@+
 

Nougatine95

XLDnaute Occasionnel
Re : Copie de Macro: changer nom de page et colonnes de travail

Bonsoir Pierrot,

Merci pour ta réponse :)
Haaaa! une seule évènementielle pour une feuille!
Scrongreugneu :confused:
ô rage, ô désespoir!

Bon et bien je retourne replacer ma formule d'origine à défaut de 2 macros.

Tous mes remerciements aux intervenants.
Vos idées me servent puisque petit à petit je fais une BDD compil' des macros suggérées. De quoi progresser en décortiquant les procédures et tenter de les :rolleyes: comprendre.

Bonne soirée.
 

Pierrot93

XLDnaute Barbatruc
Re : Copie de Macro: changer nom de page et colonnes de travail

Re

oui, une seule événementielle de même type, par contre tu peux avoir une :

événement double click
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

plus également une sur l'événement change
Code:
Private Sub Worksheet_Change(ByVal Target As Range)

et encore une sur l'événement SelectionChange
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
etc...

bonne soirée
@+
 

Nougatine95

XLDnaute Occasionnel
Re : Copie de Macro: changer nom de page et colonnes de travail

Re,

Oui merci Pierrot je l'entendais ainsi de même type,
en fait il m'aurait fallu 2
Private Sub Worksheet_Change(ByVal Target As Range)
mais bon! j'en ai vite fait deuil avec formules qui conviennent.

@+
 

Discussions similaires

Réponses
1
Affichages
204

Statistiques des forums

Discussions
312 595
Messages
2 090 093
Membres
104 374
dernier inscrit
cheick.coulibaly@dcsmali.