Je voudrais extraire des donn=E9es de la colonne A vers la colonne C =E0
l'aide d'une macro, mais dans le parametre CriteriaRange je veux
appliquer une formule.
Est-ce possible ?
Voila la macro :
Sub essai()
'--- cat=E9gorie
If Target.Column =3D 1 And Target.Count =3D 1 Then
Application.EnableEvents =3D False
[A1:A20].AdvancedFilter Action:=3DxlFilterCopy,
CriteriaRange:=3D[E1].Formula =3D "=3DSTXT(A1;CHERCHE(" - ";A1)+1;NBCAR(A1)-
CHERCHE(" - ";A1)-2)", _
CopyToRange:=3DRange("CI:C20"), Unique:=3DTrue
Range("C1:C20").Sort key1:=3DRange("C1")
Application.EnableEvents =3D True
End If
End Sub
Bon le deboggeur me signal une erreur dans la ligne :
If Target.Column =3D 1 And Target.Count =3D 1 Then
pour le débogguer la question est " qu'est ce qu'est target ?" . En fait ta macro doit être une adapatation d'une procédure evenementielle dans laquelle par défaut VBA sait que Target est une cellule et même en connait toutes le propriétés locales auquel cas il n'existe pas de plantage. Mais quand c'est toi qui écris une procédure ,il faut bien définir ce qu'est Target car autrement VBA par défaut reconnait bien qu'il s'aggit d'une varaible de type Variant et sans doute plutot de ctype range car associée à une propriété Coolumn mais comme Target n'a pas recu d'affectation par un mot clé Set , alors pour VBA Target est Nothing et Nothing.column n'a pas de sens. Tout ce long laius pour te dire qu'il faut que tu affectes quelque chose de type range à Target avant de lancer ta macro. Par exemple, set target=range("A1:A10")
A+
Bonjour,
Je voudrais extraire des données de la colonne A vers la colonne C à l'aide d'une macro, mais dans le parametre CriteriaRange je veux appliquer une formule.
Est-ce possible ?
Voila la macro :
Sub essai() '--- catégorie If Target.Column = 1 And Target.Count = 1 Then Application.EnableEvents = False [A1:A20].AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=[E1].Formula = "=STXT(A1;CHERCHE(" - ";A1)+1;NBCAR(A1)- CHERCHE(" - ";A1)-2)", _ CopyToRange:=Range("CI:C20"), Unique:=True Range("C1:C20").Sort key1:=Range("C1") Application.EnableEvents = True End If End Sub
Bon le deboggeur me signal une erreur dans la ligne :
If Target.Column = 1 And Target.Count = 1 Then
Erreur d'execution '424'. Objet requis.
Merci de votre aide.
Bonjour,
pour le débogguer la question est " qu'est ce qu'est target ?" . En fait
ta macro doit être une adapatation d'une procédure evenementielle dans
laquelle par défaut VBA sait que Target est une cellule et même en
connait toutes le propriétés locales auquel cas il n'existe pas de plantage.
Mais quand c'est toi qui écris une procédure ,il faut bien définir ce
qu'est Target car autrement VBA par défaut reconnait bien qu'il s'aggit
d'une varaible de type Variant et sans doute plutot de ctype range car
associée à une propriété Coolumn mais comme Target n'a pas recu
d'affectation par un mot clé Set , alors pour VBA Target est Nothing et
Nothing.column n'a pas de sens.
Tout ce long laius pour te dire qu'il faut que tu affectes quelque chose
de type range à Target avant de lancer ta macro.
Par exemple, set target=range("A1:A10")
A+
Bonjour,
Je voudrais extraire des données de la colonne A vers la colonne C à
l'aide d'une macro, mais dans le parametre CriteriaRange je veux
appliquer une formule.
Est-ce possible ?
Voila la macro :
Sub essai()
'--- catégorie
If Target.Column = 1 And Target.Count = 1 Then
Application.EnableEvents = False
[A1:A20].AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=[E1].Formula = "=STXT(A1;CHERCHE(" - ";A1)+1;NBCAR(A1)-
CHERCHE(" - ";A1)-2)", _
CopyToRange:=Range("CI:C20"), Unique:=True
Range("C1:C20").Sort key1:=Range("C1")
Application.EnableEvents = True
End If
End Sub
Bon le deboggeur me signal une erreur dans la ligne :
pour le débogguer la question est " qu'est ce qu'est target ?" . En fait ta macro doit être une adapatation d'une procédure evenementielle dans laquelle par défaut VBA sait que Target est une cellule et même en connait toutes le propriétés locales auquel cas il n'existe pas de plantage. Mais quand c'est toi qui écris une procédure ,il faut bien définir ce qu'est Target car autrement VBA par défaut reconnait bien qu'il s'aggit d'une varaible de type Variant et sans doute plutot de ctype range car associée à une propriété Coolumn mais comme Target n'a pas recu d'affectation par un mot clé Set , alors pour VBA Target est Nothing et Nothing.column n'a pas de sens. Tout ce long laius pour te dire qu'il faut que tu affectes quelque chose de type range à Target avant de lancer ta macro. Par exemple, set target=range("A1:A10")
A+
Bonjour,
Je voudrais extraire des données de la colonne A vers la colonne C à l'aide d'une macro, mais dans le parametre CriteriaRange je veux appliquer une formule.
Est-ce possible ?
Voila la macro :
Sub essai() '--- catégorie If Target.Column = 1 And Target.Count = 1 Then Application.EnableEvents = False [A1:A20].AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=[E1].Formula = "=STXT(A1;CHERCHE(" - ";A1)+1;NBCAR(A1)- CHERCHE(" - ";A1)-2)", _ CopyToRange:=Range("CI:C20"), Unique:=True Range("C1:C20").Sort key1:=Range("C1") Application.EnableEvents = True End If End Sub
Bon le deboggeur me signal une erreur dans la ligne :
If Target.Column = 1 And Target.Count = 1 Then
Erreur d'execution '424'. Objet requis.
Merci de votre aide.
LSteph
Bonjour,
Que cherche tu à désigner par Target ? (qui s'utilise dans les évenementielles lorsque déclaré dans les param de la private sub)
également, Application.EnableEvents = False As-tu à te préserver d'autres évenementielles?
Dans quels modules tout cela est-il écrit?
Un petit tour par http://cjoint.com serait pas mal.
@+
lSteph
Bonjour,
Je voudrais extraire des données de la colonne A vers la colonne C à l'aide d'une macro, mais dans le parametre CriteriaRange je veux appliquer une formule.
Est-ce possible ?
Voila la macro :
Sub essai() '--- catégorie If Target.Column = 1 And Target.Count = 1 Then Application.EnableEvents = False [A1:A20].AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=[E1].Formula = "=STXT(A1;CHERCHE(" - ";A1)+1;NBCAR(A1)- CHERCHE(" - ";A1)-2)", _ CopyToRange:=Range("CI:C20"), Unique:=True Range("C1:C20").Sort key1:=Range("C1") Application.EnableEvents = True End If End Sub
Bon le deboggeur me signal une erreur dans la ligne :
If Target.Column = 1 And Target.Count = 1 Then
Erreur d'execution '424'. Objet requis.
Merci de votre aide.
Bonjour,
Que cherche tu à désigner par Target ?
(qui s'utilise dans les évenementielles lorsque déclaré dans les param
de la private sub)
également,
Application.EnableEvents = False
As-tu à te préserver d'autres évenementielles?
Dans quels modules tout cela est-il écrit?
Un petit tour par http://cjoint.com serait pas mal.
@+
lSteph
Bonjour,
Je voudrais extraire des données de la colonne A vers la colonne C à
l'aide d'une macro, mais dans le parametre CriteriaRange je veux
appliquer une formule.
Est-ce possible ?
Voila la macro :
Sub essai()
'--- catégorie
If Target.Column = 1 And Target.Count = 1 Then
Application.EnableEvents = False
[A1:A20].AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=[E1].Formula = "=STXT(A1;CHERCHE(" - ";A1)+1;NBCAR(A1)-
CHERCHE(" - ";A1)-2)", _
CopyToRange:=Range("CI:C20"), Unique:=True
Range("C1:C20").Sort key1:=Range("C1")
Application.EnableEvents = True
End If
End Sub
Bon le deboggeur me signal une erreur dans la ligne :
Que cherche tu à désigner par Target ? (qui s'utilise dans les évenementielles lorsque déclaré dans les param de la private sub)
également, Application.EnableEvents = False As-tu à te préserver d'autres évenementielles?
Dans quels modules tout cela est-il écrit?
Un petit tour par http://cjoint.com serait pas mal.
@+
lSteph
Bonjour,
Je voudrais extraire des données de la colonne A vers la colonne C à l'aide d'une macro, mais dans le parametre CriteriaRange je veux appliquer une formule.
Est-ce possible ?
Voila la macro :
Sub essai() '--- catégorie If Target.Column = 1 And Target.Count = 1 Then Application.EnableEvents = False [A1:A20].AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=[E1].Formula = "=STXT(A1;CHERCHE(" - ";A1)+1;NBCAR(A1)- CHERCHE(" - ";A1)-2)", _ CopyToRange:=Range("CI:C20"), Unique:=True Range("C1:C20").Sort key1:=Range("C1") Application.EnableEvents = True End If End Sub
Bon le deboggeur me signal une erreur dans la ligne :
En fait la colonne Produit est remplie dynamiquement par un code que tu m'as file depuis quelque temps.
J'aimerais aussi que la colonne Produit2 soit faite de la même maniere tout en vouyant l'extraction de ce qui est entre les (-) se faire en meme temps.
Merci.
Heureux de te voir JB.
En fait la colonne Produit est remplie dynamiquement par un code que
tu m'as file depuis quelque temps.
J'aimerais aussi que la colonne Produit2 soit faite de la même maniere
tout en vouyant l'extraction de ce qui est entre les (-) se faire en
meme temps.
En fait la colonne Produit est remplie dynamiquement par un code que tu m'as file depuis quelque temps.
J'aimerais aussi que la colonne Produit2 soit faite de la même maniere tout en vouyant l'extraction de ce qui est entre les (-) se faire en meme temps.
Merci.
JB
Bonsoir,
Je ne suis pas sûr d'avoir compris la question:
-Documente la colonne B (famille) lors de la saisie du produit en colonne A -Documente la colonne J (liste des familles sans doublons) lors de la saisie en colonne A
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 And Target.Count = 1 Then p1 = InStr(Target, "-") P2 = InStr(p1 + 1, Target, "-") If p1 > 0 And P2 > 0 Then Target.Offset(0, 1) = Mid(Target, p1 + 1, P2 - p1 - 1) [B1:B1000].AdvancedFilter Action:=xlFilterCopy, CopyToRange:=[J1], Unique:=True End If End If End Sub
http://cjoint.com/?eiwRZ00phY
Cordialement JB
On 8 avr, 21:42, "Apitos" wrote:
Heureux de te voir JB.
En fait la colonne Produit est remplie dynamiquement par un code que tu m'as file depuis quelque temps.
J'aimerais aussi que la colonne Produit2 soit faite de la même maniere tout en vouyant l'extraction de ce qui est entre les (-) se faire en meme temps.
Merci.
Bonsoir,
Je ne suis pas sûr d'avoir compris la question:
-Documente la colonne B (famille) lors de la saisie du produit en
colonne A
-Documente la colonne J (liste des familles sans doublons) lors de la
saisie en colonne A
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 Then
p1 = InStr(Target, "-")
P2 = InStr(p1 + 1, Target, "-")
If p1 > 0 And P2 > 0 Then
Target.Offset(0, 1) = Mid(Target, p1 + 1, P2 - p1 - 1)
[B1:B1000].AdvancedFilter Action:=xlFilterCopy,
CopyToRange:=[J1], Unique:=True
End If
End If
End Sub
http://cjoint.com/?eiwRZ00phY
Cordialement JB
On 8 avr, 21:42, "Apitos" <elat...@gmail.com> wrote:
Heureux de te voir JB.
En fait la colonne Produit est remplie dynamiquement par un code que
tu m'as file depuis quelque temps.
J'aimerais aussi que la colonne Produit2 soit faite de la même maniere
tout en vouyant l'extraction de ce qui est entre les (-) se faire en
meme temps.
-Documente la colonne B (famille) lors de la saisie du produit en colonne A -Documente la colonne J (liste des familles sans doublons) lors de la saisie en colonne A
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 And Target.Count = 1 Then p1 = InStr(Target, "-") P2 = InStr(p1 + 1, Target, "-") If p1 > 0 And P2 > 0 Then Target.Offset(0, 1) = Mid(Target, p1 + 1, P2 - p1 - 1) [B1:B1000].AdvancedFilter Action:=xlFilterCopy, CopyToRange:=[J1], Unique:=True End If End If End Sub
http://cjoint.com/?eiwRZ00phY
Cordialement JB
On 8 avr, 21:42, "Apitos" wrote:
Heureux de te voir JB.
En fait la colonne Produit est remplie dynamiquement par un code que tu m'as file depuis quelque temps.
J'aimerais aussi que la colonne Produit2 soit faite de la même maniere tout en vouyant l'extraction de ce qui est entre les (-) se faire en meme temps.
Merci.
Apitos
Bonjour JB,
Quand j'integrerai ton code dnas mon travail rien ne marche ...
Bon voila un exemple :
http://cjoint.com/?ejnCw0xSfQ
Merci.
Bonjour JB,
Quand j'integrerai ton code dnas mon travail rien ne marche ...