Bonjour, voici mon pb, sur une macro excel que je n'ai pas crée, je dois
résoudre un pb, le voici.
Je vous joins le code qui pose pb et j'espere que vous comprendrez mon pb,
En fait, cette macro permet de comparer 2 zones de textequi ont été
extraites des 2 feuilles qui vont etre stockées dans REF1 et REF2.
La voici :
*******************
Sub Comparaison()
'
' Macro créée le 10/12/2004 par CIR IDF (FB)
'
'demander quelles sont les feuilles à comparer
Dim Ref1, Ref2 As String
Ref1 = InputBox("saisir le nom de la feuille référence", "Quel feuille
?", "PC_MMAA")
Ref2 = InputBox("saisir le nom de la feuille à comparer", "Quel feuille
?", "PC_MMAA")
'ajouter une feuille au début
Sheets(1).Select
Sheets.Add
ActiveSheet.Name = "compar"
Range("A1").FormulaR1C1 = Ref1
Range("B1").FormulaR1C1 = Ref2
'Range("C1").FormulaR1C1 = "x"
'Range("D1").FormulaR1C1 = "y"
'copier les plages "applications" des PC concernés dans les 2 1ères colonnes
Application.Goto Reference:="P" & Ref1
Selection.Copy
Sheets("compar").Select
Range("A2").Select
ActiveSheet.Paste
Application.Goto Reference:="P" & Ref2
Selection.Copy
Sheets("compar").Select
Range("B2").Select
ActiveSheet.Paste
Dans les dernières lignes (dans le MATCH (RC[-2],,0) et dans la ligne du
dessous, je dois insérer les "P" & REF1 et "P" & REF2 mais je ne sais pas
comment les insérer, quelle est la bonne syntaxe pour que ca fonctionne ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Patrice Henrio
C'est un problème auquel je viens d'être confronté Donc le problème c'est comment mettre des guillemets dasn une chaîne de caractères ? Il faut les tripler Ainsi si P="", len(P)=0 mais si P=""", len(P)=1 et la valeur de P est " Le problème est plus profond qu'il n'y parait car dans notre cas, cette chaîne obtenue est interprétée ensuite comme une chaîne et donc le " devient une fin de Chaîne. Expliquons sur un exemple : Formule="=Si($A$1="A";1;0)" Sous cette forme, erreur de compilation au niveau du A On peut essayer Formule="=Si($A$1="""A""";1;0), nous avons la même erreur Formule="=Si($A$1=" & """ & "A" & """ & ";1;0)" de nouveau une ereur alors que debug.print "=Si($A$1="""A""";1;0) nous donne bien la bonne écriture Divers essais m'ont montré que d'une part le point virgule est réinterprété comme séparateur de paramètre, que la chaîne obtenue est elle-même réinterprétée en tant que chaîne (?)
Je n'ai toujours pas réussi à faire rentrer une formule sous forme texte quand elle nécessite des guillemets ou des points virgules, même avec des astuces du genre G=chr(34) et PtV=chr(59)
"chesterfield" a écrit dans le message de news: 41bc236e$0$20838$
Bonjour, voici mon pb, sur une macro excel que je n'ai pas crée, je dois résoudre un pb, le voici.
Je vous joins le code qui pose pb et j'espere que vous comprendrez mon pb, En fait, cette macro permet de comparer 2 zones de textequi ont été extraites des 2 feuilles qui vont etre stockées dans REF1 et REF2. La voici :
*******************
Sub Comparaison() ' ' Macro créée le 10/12/2004 par CIR IDF (FB) ' 'demander quelles sont les feuilles à comparer Dim Ref1, Ref2 As String Ref1 = InputBox("saisir le nom de la feuille référence", "Quel feuille ?", "PC_MMAA") Ref2 = InputBox("saisir le nom de la feuille à comparer", "Quel feuille ?", "PC_MMAA")
'ajouter une feuille au début Sheets(1).Select Sheets.Add ActiveSheet.Name = "compar" Range("A1").FormulaR1C1 = Ref1 Range("B1").FormulaR1C1 = Ref2 'Range("C1").FormulaR1C1 = "x" 'Range("D1").FormulaR1C1 = "y"
'copier les plages "applications" des PC concernés dans les 2 1ères colonnes Application.Goto Reference:="P" & Ref1 Selection.Copy Sheets("compar").Select Range("A2").Select ActiveSheet.Paste Application.Goto Reference:="P" & Ref2 Selection.Copy Sheets("compar").Select Range("B2").Select ActiveSheet.Paste
Dans les dernières lignes (dans le MATCH (RC[-2],,0) et dans la ligne du dessous, je dois insérer les "P" & REF1 et "P" & REF2 mais je ne sais pas comment les insérer, quelle est la bonne syntaxe pour que ca fonctionne ?
Merci d'avance
C'est un problème auquel je viens d'être confronté
Donc le problème c'est comment mettre des guillemets dasn une chaîne de
caractères ? Il faut les tripler
Ainsi si P="", len(P)=0 mais si P=""", len(P)=1 et la valeur de P est "
Le problème est plus profond qu'il n'y parait car dans notre cas, cette
chaîne obtenue est interprétée ensuite comme une chaîne et donc le " devient
une fin de Chaîne.
Expliquons sur un exemple : Formule="=Si($A$1="A";1;0)"
Sous cette forme, erreur de compilation au niveau du A
On peut essayer Formule="=Si($A$1="""A""";1;0), nous avons la même erreur
Formule="=Si($A$1=" & """ & "A" & """ & ";1;0)" de nouveau une ereur alors
que debug.print "=Si($A$1="""A""";1;0) nous donne bien la bonne écriture
Divers essais m'ont montré que d'une part le point virgule est réinterprété
comme séparateur de paramètre, que la chaîne obtenue est elle-même
réinterprétée en tant que chaîne (?)
Je n'ai toujours pas réussi à faire rentrer une formule sous forme texte
quand elle nécessite des guillemets ou des points virgules, même avec des
astuces du genre G=chr(34) et PtV=chr(59)
"chesterfield" <chesterfield@ch.fr> a écrit dans le message de news:
41bc236e$0$20838$7a628cd7@news.club-internet.fr...
Bonjour, voici mon pb, sur une macro excel que je n'ai pas crée, je dois
résoudre un pb, le voici.
Je vous joins le code qui pose pb et j'espere que vous comprendrez mon pb,
En fait, cette macro permet de comparer 2 zones de textequi ont été
extraites des 2 feuilles qui vont etre stockées dans REF1 et REF2.
La voici :
*******************
Sub Comparaison()
'
' Macro créée le 10/12/2004 par CIR IDF (FB)
'
'demander quelles sont les feuilles à comparer
Dim Ref1, Ref2 As String
Ref1 = InputBox("saisir le nom de la feuille référence", "Quel feuille
?", "PC_MMAA")
Ref2 = InputBox("saisir le nom de la feuille à comparer", "Quel feuille
?", "PC_MMAA")
'ajouter une feuille au début
Sheets(1).Select
Sheets.Add
ActiveSheet.Name = "compar"
Range("A1").FormulaR1C1 = Ref1
Range("B1").FormulaR1C1 = Ref2
'Range("C1").FormulaR1C1 = "x"
'Range("D1").FormulaR1C1 = "y"
'copier les plages "applications" des PC concernés dans les 2 1ères
colonnes
Application.Goto Reference:="P" & Ref1
Selection.Copy
Sheets("compar").Select
Range("A2").Select
ActiveSheet.Paste
Application.Goto Reference:="P" & Ref2
Selection.Copy
Sheets("compar").Select
Range("B2").Select
ActiveSheet.Paste
Dans les dernières lignes (dans le MATCH (RC[-2],,0) et dans la ligne du
dessous, je dois insérer les "P" & REF1 et "P" & REF2 mais je ne sais pas
comment les insérer, quelle est la bonne syntaxe pour que ca fonctionne ?
C'est un problème auquel je viens d'être confronté Donc le problème c'est comment mettre des guillemets dasn une chaîne de caractères ? Il faut les tripler Ainsi si P="", len(P)=0 mais si P=""", len(P)=1 et la valeur de P est " Le problème est plus profond qu'il n'y parait car dans notre cas, cette chaîne obtenue est interprétée ensuite comme une chaîne et donc le " devient une fin de Chaîne. Expliquons sur un exemple : Formule="=Si($A$1="A";1;0)" Sous cette forme, erreur de compilation au niveau du A On peut essayer Formule="=Si($A$1="""A""";1;0), nous avons la même erreur Formule="=Si($A$1=" & """ & "A" & """ & ";1;0)" de nouveau une ereur alors que debug.print "=Si($A$1="""A""";1;0) nous donne bien la bonne écriture Divers essais m'ont montré que d'une part le point virgule est réinterprété comme séparateur de paramètre, que la chaîne obtenue est elle-même réinterprétée en tant que chaîne (?)
Je n'ai toujours pas réussi à faire rentrer une formule sous forme texte quand elle nécessite des guillemets ou des points virgules, même avec des astuces du genre G=chr(34) et PtV=chr(59)
"chesterfield" a écrit dans le message de news: 41bc236e$0$20838$
Bonjour, voici mon pb, sur une macro excel que je n'ai pas crée, je dois résoudre un pb, le voici.
Je vous joins le code qui pose pb et j'espere que vous comprendrez mon pb, En fait, cette macro permet de comparer 2 zones de textequi ont été extraites des 2 feuilles qui vont etre stockées dans REF1 et REF2. La voici :
*******************
Sub Comparaison() ' ' Macro créée le 10/12/2004 par CIR IDF (FB) ' 'demander quelles sont les feuilles à comparer Dim Ref1, Ref2 As String Ref1 = InputBox("saisir le nom de la feuille référence", "Quel feuille ?", "PC_MMAA") Ref2 = InputBox("saisir le nom de la feuille à comparer", "Quel feuille ?", "PC_MMAA")
'ajouter une feuille au début Sheets(1).Select Sheets.Add ActiveSheet.Name = "compar" Range("A1").FormulaR1C1 = Ref1 Range("B1").FormulaR1C1 = Ref2 'Range("C1").FormulaR1C1 = "x" 'Range("D1").FormulaR1C1 = "y"
'copier les plages "applications" des PC concernés dans les 2 1ères colonnes Application.Goto Reference:="P" & Ref1 Selection.Copy Sheets("compar").Select Range("A2").Select ActiveSheet.Paste Application.Goto Reference:="P" & Ref2 Selection.Copy Sheets("compar").Select Range("B2").Select ActiveSheet.Paste
Dans les dernières lignes (dans le MATCH (RC[-2],,0) et dans la ligne du dessous, je dois insérer les "P" & REF1 et "P" & REF2 mais je ne sais pas comment les insérer, quelle est la bonne syntaxe pour que ca fonctionne ?
Merci d'avance
chesterfield
ok merci de ces infos mais kkun a une idée pour mon pb ?
merci d'avance "Patrice Henrio" a écrit dans le message de news:
C'est un problème auquel je viens d'être confronté Donc le problème c'est comment mettre des guillemets dasn une chaîne de caractères ? Il faut les tripler Ainsi si P="", len(P)=0 mais si P=""", len(P)=1 et la valeur de P est " Le problème est plus profond qu'il n'y parait car dans notre cas, cette chaîne obtenue est interprétée ensuite comme une chaîne et donc le "
devient
une fin de Chaîne. Expliquons sur un exemple : Formule="=Si($A$1="A";1;0)" Sous cette forme, erreur de compilation au niveau du A On peut essayer Formule="=Si($A$1="""A""";1;0), nous avons la même erreur Formule="=Si($A$1=" & """ & "A" & """ & ";1;0)" de nouveau une ereur alors que debug.print "=Si($A$1="""A""";1;0) nous donne bien la bonne écriture Divers essais m'ont montré que d'une part le point virgule est
réinterprété
comme séparateur de paramètre, que la chaîne obtenue est elle-même réinterprétée en tant que chaîne (?)
Je n'ai toujours pas réussi à faire rentrer une formule sous forme texte quand elle nécessite des guillemets ou des points virgules, même avec des astuces du genre G=chr(34) et PtV=chr(59)
"chesterfield" a écrit dans le message de news: 41bc236e$0$20838$ > Bonjour, voici mon pb, sur une macro excel que je n'ai pas crée, je dois > résoudre un pb, le voici. > > Je vous joins le code qui pose pb et j'espere que vous comprendrez mon
pb,
> En fait, cette macro permet de comparer 2 zones de textequi ont été > extraites des 2 feuilles qui vont etre stockées dans REF1 et REF2. > La voici : > > > ******************* > > Sub Comparaison() > ' > ' Macro créée le 10/12/2004 par CIR IDF (FB) > ' > 'demander quelles sont les feuilles à comparer > Dim Ref1, Ref2 As String > Ref1 = InputBox("saisir le nom de la feuille référence", "Quel
feuille
> ?", "PC_MMAA") > Ref2 = InputBox("saisir le nom de la feuille à comparer", "Quel
feuille
> ?", "PC_MMAA") > > 'ajouter une feuille au début > Sheets(1).Select > Sheets.Add > ActiveSheet.Name = "compar" > Range("A1").FormulaR1C1 = Ref1 > Range("B1").FormulaR1C1 = Ref2 > 'Range("C1").FormulaR1C1 = "x" > 'Range("D1").FormulaR1C1 = "y" > > 'copier les plages "applications" des PC concernés dans les 2 1ères > colonnes > Application.Goto Reference:="P" & Ref1 > Selection.Copy > Sheets("compar").Select > Range("A2").Select > ActiveSheet.Paste > Application.Goto Reference:="P" & Ref2 > Selection.Copy > Sheets("compar").Select > Range("B2").Select > ActiveSheet.Paste > > 'insérer formules de comparaison > Range("C2").FormulaR1C1 = "=MATCH(RC[-2],,0)" > Range("D2").FormulaR1C1 = "=MATCH(RC[-2],,0)" > Range("C2:D2").Select > Selection.AutoFill Destination:=Range("C2:D50"), Type:=xlFillDefault > > End Sub > > > **************** > > Dans les dernières lignes (dans le MATCH (RC[-2],,0) et dans la ligne du > dessous, je dois insérer les "P" & REF1 et "P" & REF2 mais je ne sais
pas
> comment les insérer, quelle est la bonne syntaxe pour que ca fonctionne
?
> > Merci d'avance > >
ok merci de ces infos mais kkun a une idée pour mon pb ?
merci d'avance
"Patrice Henrio" <patrice.henrio@laposte.net> a écrit dans le message de
news:egc5eUE4EHA.3708@TK2MSFTNGP14.phx.gbl...
C'est un problème auquel je viens d'être confronté
Donc le problème c'est comment mettre des guillemets dasn une chaîne de
caractères ? Il faut les tripler
Ainsi si P="", len(P)=0 mais si P=""", len(P)=1 et la valeur de P est "
Le problème est plus profond qu'il n'y parait car dans notre cas, cette
chaîne obtenue est interprétée ensuite comme une chaîne et donc le "
devient
une fin de Chaîne.
Expliquons sur un exemple : Formule="=Si($A$1="A";1;0)"
Sous cette forme, erreur de compilation au niveau du A
On peut essayer Formule="=Si($A$1="""A""";1;0), nous avons la même erreur
Formule="=Si($A$1=" & """ & "A" & """ & ";1;0)" de nouveau une ereur alors
que debug.print "=Si($A$1="""A""";1;0) nous donne bien la bonne écriture
Divers essais m'ont montré que d'une part le point virgule est
réinterprété
comme séparateur de paramètre, que la chaîne obtenue est elle-même
réinterprétée en tant que chaîne (?)
Je n'ai toujours pas réussi à faire rentrer une formule sous forme texte
quand elle nécessite des guillemets ou des points virgules, même avec des
astuces du genre G=chr(34) et PtV=chr(59)
"chesterfield" <chesterfield@ch.fr> a écrit dans le message de news:
41bc236e$0$20838$7a628cd7@news.club-internet.fr...
> Bonjour, voici mon pb, sur une macro excel que je n'ai pas crée, je dois
> résoudre un pb, le voici.
>
> Je vous joins le code qui pose pb et j'espere que vous comprendrez mon
pb,
> En fait, cette macro permet de comparer 2 zones de textequi ont été
> extraites des 2 feuilles qui vont etre stockées dans REF1 et REF2.
> La voici :
>
>
> *******************
>
> Sub Comparaison()
> '
> ' Macro créée le 10/12/2004 par CIR IDF (FB)
> '
> 'demander quelles sont les feuilles à comparer
> Dim Ref1, Ref2 As String
> Ref1 = InputBox("saisir le nom de la feuille référence", "Quel
feuille
> ?", "PC_MMAA")
> Ref2 = InputBox("saisir le nom de la feuille à comparer", "Quel
feuille
> ?", "PC_MMAA")
>
> 'ajouter une feuille au début
> Sheets(1).Select
> Sheets.Add
> ActiveSheet.Name = "compar"
> Range("A1").FormulaR1C1 = Ref1
> Range("B1").FormulaR1C1 = Ref2
> 'Range("C1").FormulaR1C1 = "x"
> 'Range("D1").FormulaR1C1 = "y"
>
> 'copier les plages "applications" des PC concernés dans les 2 1ères
> colonnes
> Application.Goto Reference:="P" & Ref1
> Selection.Copy
> Sheets("compar").Select
> Range("A2").Select
> ActiveSheet.Paste
> Application.Goto Reference:="P" & Ref2
> Selection.Copy
> Sheets("compar").Select
> Range("B2").Select
> ActiveSheet.Paste
>
> 'insérer formules de comparaison
> Range("C2").FormulaR1C1 = "=MATCH(RC[-2],,0)"
> Range("D2").FormulaR1C1 = "=MATCH(RC[-2],,0)"
> Range("C2:D2").Select
> Selection.AutoFill Destination:=Range("C2:D50"), Type:=xlFillDefault
>
> End Sub
>
>
> ****************
>
> Dans les dernières lignes (dans le MATCH (RC[-2],,0) et dans la ligne du
> dessous, je dois insérer les "P" & REF1 et "P" & REF2 mais je ne sais
pas
> comment les insérer, quelle est la bonne syntaxe pour que ca fonctionne
ok merci de ces infos mais kkun a une idée pour mon pb ?
merci d'avance "Patrice Henrio" a écrit dans le message de news:
C'est un problème auquel je viens d'être confronté Donc le problème c'est comment mettre des guillemets dasn une chaîne de caractères ? Il faut les tripler Ainsi si P="", len(P)=0 mais si P=""", len(P)=1 et la valeur de P est " Le problème est plus profond qu'il n'y parait car dans notre cas, cette chaîne obtenue est interprétée ensuite comme une chaîne et donc le "
devient
une fin de Chaîne. Expliquons sur un exemple : Formule="=Si($A$1="A";1;0)" Sous cette forme, erreur de compilation au niveau du A On peut essayer Formule="=Si($A$1="""A""";1;0), nous avons la même erreur Formule="=Si($A$1=" & """ & "A" & """ & ";1;0)" de nouveau une ereur alors que debug.print "=Si($A$1="""A""";1;0) nous donne bien la bonne écriture Divers essais m'ont montré que d'une part le point virgule est
réinterprété
comme séparateur de paramètre, que la chaîne obtenue est elle-même réinterprétée en tant que chaîne (?)
Je n'ai toujours pas réussi à faire rentrer une formule sous forme texte quand elle nécessite des guillemets ou des points virgules, même avec des astuces du genre G=chr(34) et PtV=chr(59)
"chesterfield" a écrit dans le message de news: 41bc236e$0$20838$ > Bonjour, voici mon pb, sur une macro excel que je n'ai pas crée, je dois > résoudre un pb, le voici. > > Je vous joins le code qui pose pb et j'espere que vous comprendrez mon
pb,
> En fait, cette macro permet de comparer 2 zones de textequi ont été > extraites des 2 feuilles qui vont etre stockées dans REF1 et REF2. > La voici : > > > ******************* > > Sub Comparaison() > ' > ' Macro créée le 10/12/2004 par CIR IDF (FB) > ' > 'demander quelles sont les feuilles à comparer > Dim Ref1, Ref2 As String > Ref1 = InputBox("saisir le nom de la feuille référence", "Quel
feuille
> ?", "PC_MMAA") > Ref2 = InputBox("saisir le nom de la feuille à comparer", "Quel
feuille
> ?", "PC_MMAA") > > 'ajouter une feuille au début > Sheets(1).Select > Sheets.Add > ActiveSheet.Name = "compar" > Range("A1").FormulaR1C1 = Ref1 > Range("B1").FormulaR1C1 = Ref2 > 'Range("C1").FormulaR1C1 = "x" > 'Range("D1").FormulaR1C1 = "y" > > 'copier les plages "applications" des PC concernés dans les 2 1ères > colonnes > Application.Goto Reference:="P" & Ref1 > Selection.Copy > Sheets("compar").Select > Range("A2").Select > ActiveSheet.Paste > Application.Goto Reference:="P" & Ref2 > Selection.Copy > Sheets("compar").Select > Range("B2").Select > ActiveSheet.Paste > > 'insérer formules de comparaison > Range("C2").FormulaR1C1 = "=MATCH(RC[-2],,0)" > Range("D2").FormulaR1C1 = "=MATCH(RC[-2],,0)" > Range("C2:D2").Select > Selection.AutoFill Destination:=Range("C2:D50"), Type:=xlFillDefault > > End Sub > > > **************** > > Dans les dernières lignes (dans le MATCH (RC[-2],,0) et dans la ligne du > dessous, je dois insérer les "P" & REF1 et "P" & REF2 mais je ne sais
pas
> comment les insérer, quelle est la bonne syntaxe pour que ca fonctionne
?
> > Merci d'avance > >
Alain CROS
Bonjour.
Cette question serait mieux sur microsoft.public.fr.excel.
Je n'ai pas très bien compris la problématique mais en reprenant l'exemple de Patrice Pour inscrire =Si($A$1="A";1;0) en F1 par code :
[F1].formula="=IF($A$1=""A"",1,0)"
Alain CROS
"chesterfield" a écrit dans le message de news: 41bc964c$0$20831$
ok merci de ces infos mais kkun a une idée pour mon pb ?
merci d'avance
Bonjour.
Cette question serait mieux sur microsoft.public.fr.excel.
Je n'ai pas très bien compris la problématique mais en reprenant l'exemple de Patrice
Pour inscrire =Si($A$1="A";1;0) en F1 par code :
[F1].formula="=IF($A$1=""A"",1,0)"
Alain CROS
"chesterfield" <chesterfield@ch.fr> a écrit dans le message de news: 41bc964c$0$20831$7a628cd7@news.club-internet.fr...
ok merci de ces infos mais kkun a une idée pour mon pb ?