Durant une proc=E9dure VB, je d=E9sire placer en A1 la formule
matricielle :
'formule matricielle de l'incr=E9ment du maxi d=E9j=E0 pr=E9sent dans la
plage
Range("A1").FormulaArray =3D
"=3DMAX(If(G4:G1747>=3D""L00000"",VALUE(right(G4:G1747,5)),0))+1"
Formule o=F9 G4:G1747 est la plage d'o=F9 on veut extraire le maxi d'une
chaine commen=E7ant par L suivi de 5 chiffres.
Jusque l=E0 =E7a marche.
Je d=E9finie une plage "plageChrono" qui dynamiquement reprends les
valeurs de G4 =E0 Gxxxx, xxxx =E9tant la derni=E8re cellule utilis=E9e
de la colonne G. Je pense na=EFvement que ma formule devient
Désolé : Range("A1").FormulaArray = _ "=MAX(If(plageChrono>=""L00000"",VALUE(right(plageChrono)),0))+1" Daniel "Daniel" a écrit dans le message de news: eH$
Essaie : Sub test() Dim Plage As Range Set Plage = ActiveSheet.Range("G4:G" & _ ActiveSheet.Range("G65356").End(xlUp).Row) ActiveWorkbook.Names.Add Name:="plageChrono", RefersTo:="Feuil1!" & Plage.Address Range("A1").FormulaArray = _ "=MAX(If(G4:G1747>=""L00000"",VALUE(right(plageChrono)),0))+1" End Sub Daniel "Le Nordiste" a écrit dans le message de news: Je reformule mon Pb : Durant une procédure VB, je désire placer en A1 la formule matricielle :
et là ça ne marche pas. Mon Pb peut s'exprimer par :
Comment faire pour remplacer une plage G4:G1747 par une plage nommée ?
Le Nordiste.
Désolé :
Range("A1").FormulaArray = _
"=MAX(If(plageChrono>=""L00000"",VALUE(right(plageChrono)),0))+1"
Daniel
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
eH$SulbTGHA.4264@TK2MSFTNGP11.phx.gbl...
Essaie :
Sub test()
Dim Plage As Range
Set Plage = ActiveSheet.Range("G4:G" & _
ActiveSheet.Range("G65356").End(xlUp).Row)
ActiveWorkbook.Names.Add Name:="plageChrono", RefersTo:="Feuil1!" &
Plage.Address
Range("A1").FormulaArray = _
"=MAX(If(G4:G1747>=""L00000"",VALUE(right(plageChrono)),0))+1"
End Sub
Daniel
"Le Nordiste" <jean-paul.bataille@cegetel.fr> a écrit dans le message de
news: 1143034681.742391.97790@e56g2000cwe.googlegroups.com...
Je reformule mon Pb :
Durant une procédure VB, je désire placer en A1 la formule
matricielle :
Désolé : Range("A1").FormulaArray = _ "=MAX(If(plageChrono>=""L00000"",VALUE(right(plageChrono)),0))+1" Daniel "Daniel" a écrit dans le message de news: eH$
Essaie : Sub test() Dim Plage As Range Set Plage = ActiveSheet.Range("G4:G" & _ ActiveSheet.Range("G65356").End(xlUp).Row) ActiveWorkbook.Names.Add Name:="plageChrono", RefersTo:="Feuil1!" & Plage.Address Range("A1").FormulaArray = _ "=MAX(If(G4:G1747>=""L00000"",VALUE(right(plageChrono)),0))+1" End Sub Daniel "Le Nordiste" a écrit dans le message de news: Je reformule mon Pb : Durant une procédure VB, je désire placer en A1 la formule matricielle :
et là ça ne marche pas. Mon Pb peut s'exprimer par :
Comment faire pour remplacer une plage G4:G1747 par une plage nommée ?
Le Nordiste.
michdenis
Bonjour Le Nordiste,
Dans l'exemple suivant, toto est le nom de la plage nommée.
Dim R As String R = Range("toto").Parent.Name & "!" & Range("Toto").Address
Range("b1").FormulaArray = _ "=MAX(If(" & R & ">=""L00000"",VALUE(right(" & R & ",5)),0))+1"
Salutations!
"Le Nordiste" a écrit dans le message de news:
Bonjour tertous,
Durant une procédure VB, je désire placer en A1 la formule matricielle :
'formule matricielle de l'incrément du maxi déjà présent dans la plage Range("A1").FormulaArray "=MAX(If(G4:G1747>=""L00000"",VALUE(right(G4:G1747,5)),0))+1"
Formule où G4:G1747 est la plage d'où on veut extraire le maxi d'une chaine commençant par L suivi de 5 chiffres. Jusque là ça marche.
Je définie une plage "plageChrono" qui dynamiquement reprends les valeurs de G4 à Gxxxx, xxxx étant la dernière cellule utilisée de la colonne G. Je pense naïvement que ma formule devient
Dans l'exemple suivant, toto est le nom de la plage nommée.
Dim R As String
R = Range("toto").Parent.Name & "!" & Range("Toto").Address
Range("b1").FormulaArray = _
"=MAX(If(" & R & ">=""L00000"",VALUE(right(" & R & ",5)),0))+1"
Salutations!
"Le Nordiste" <jean-paul.bataille@cegetel.fr> a écrit dans le message de news:
1143029708.142841.144040@v46g2000cwv.googlegroups.com...
Bonjour tertous,
Durant une procédure VB, je désire placer en A1 la formule
matricielle :
'formule matricielle de l'incrément du maxi déjà présent dans la
plage
Range("A1").FormulaArray "=MAX(If(G4:G1747>=""L00000"",VALUE(right(G4:G1747,5)),0))+1"
Formule où G4:G1747 est la plage d'où on veut extraire le maxi d'une
chaine commençant par L suivi de 5 chiffres.
Jusque là ça marche.
Je définie une plage "plageChrono" qui dynamiquement reprends les
valeurs de G4 à Gxxxx, xxxx étant la dernière cellule utilisée
de la colonne G. Je pense naïvement que ma formule devient
Dans l'exemple suivant, toto est le nom de la plage nommée.
Dim R As String R = Range("toto").Parent.Name & "!" & Range("Toto").Address
Range("b1").FormulaArray = _ "=MAX(If(" & R & ">=""L00000"",VALUE(right(" & R & ",5)),0))+1"
Salutations!
"Le Nordiste" a écrit dans le message de news:
Bonjour tertous,
Durant une procédure VB, je désire placer en A1 la formule matricielle :
'formule matricielle de l'incrément du maxi déjà présent dans la plage Range("A1").FormulaArray "=MAX(If(G4:G1747>=""L00000"",VALUE(right(G4:G1747,5)),0))+1"
Formule où G4:G1747 est la plage d'où on veut extraire le maxi d'une chaine commençant par L suivi de 5 chiffres. Jusque là ça marche.
Je définie une plage "plageChrono" qui dynamiquement reprends les valeurs de G4 à Gxxxx, xxxx étant la dernière cellule utilisée de la colonne G. Je pense naïvement que ma formule devient
désolé pour toutes les betises que j'ai pu enoncer plus haut j'etais parti sur un evaluate
@+ patrick
"michdenis" a écrit dans le message news:
Bonjour Le Nordiste,
Dans l'exemple suivant, toto est le nom de la plage nommée.
Dim R As String R = Range("toto").Parent.Name & "!" & Range("Toto").Address
Range("b1").FormulaArray = _ "=MAX(If(" & R & ">=""L00000"",VALUE(right(" & R & ",5)),0))+1"
Salutations!
"Le Nordiste" a écrit dans le message de news:
Bonjour tertous,
Durant une procédure VB, je désire placer en A1 la formule matricielle :
'formule matricielle de l'incrément du maxi déjà présent dans la plage Range("A1").FormulaArray > "=MAX(If(G4:G1747>=""L00000"",VALUE(right(G4:G1747,5)),0))+1"
Formule où G4:G1747 est la plage d'où on veut extraire le maxi d'une chaine commençant par L suivi de 5 chiffres. Jusque là ça marche.
Je définie une plage "plageChrono" qui dynamiquement reprends les valeurs de G4 à Gxxxx, xxxx étant la dernière cellule utilisée de la colonne G. Je pense naïvement que ma formule devient
Durant une procédure VB, je désire placer en A1 la formule
matricielle :
'formule matricielle de l'incrément du maxi déjà présent dans la
plage
Range("A1").FormulaArray > "=MAX(If(G4:G1747>=""L00000"",VALUE(right(G4:G1747,5)),0))+1"
Formule où G4:G1747 est la plage d'où on veut extraire le maxi d'une
chaine commençant par L suivi de 5 chiffres.
Jusque là ça marche.
Je définie une plage "plageChrono" qui dynamiquement reprends les
valeurs de G4 à Gxxxx, xxxx étant la dernière cellule utilisée
de la colonne G. Je pense naïvement que ma formule devient
désolé pour toutes les betises que j'ai pu enoncer plus haut j'etais parti sur un evaluate
@+ patrick
"michdenis" a écrit dans le message news:
Bonjour Le Nordiste,
Dans l'exemple suivant, toto est le nom de la plage nommée.
Dim R As String R = Range("toto").Parent.Name & "!" & Range("Toto").Address
Range("b1").FormulaArray = _ "=MAX(If(" & R & ">=""L00000"",VALUE(right(" & R & ",5)),0))+1"
Salutations!
"Le Nordiste" a écrit dans le message de news:
Bonjour tertous,
Durant une procédure VB, je désire placer en A1 la formule matricielle :
'formule matricielle de l'incrément du maxi déjà présent dans la plage Range("A1").FormulaArray > "=MAX(If(G4:G1747>=""L00000"",VALUE(right(G4:G1747,5)),0))+1"
Formule où G4:G1747 est la plage d'où on veut extraire le maxi d'une chaine commençant par L suivi de 5 chiffres. Jusque là ça marche.
Je définie une plage "plageChrono" qui dynamiquement reprends les valeurs de G4 à Gxxxx, xxxx étant la dernière cellule utilisée de la colonne G. Je pense naïvement que ma formule devient
"patrick" a écrit dans le message de news: 44215bbd$ désolé pour toutes les betises que j'ai pu enoncer plus haut j'etais parti sur un evaluate
@+ patrick
"michdenis" a écrit dans le message news:
Bonjour Le Nordiste,
Dans l'exemple suivant, toto est le nom de la plage nommée.
Dim R As String R = Range("toto").Parent.Name & "!" & Range("Toto").Address
Range("b1").FormulaArray = _ "=MAX(If(" & R & ">=""L00000"",VALUE(right(" & R & ",5)),0))+1"
Salutations!
"Le Nordiste" a écrit dans le message de news:
Bonjour tertous,
Durant une procédure VB, je désire placer en A1 la formule matricielle :
'formule matricielle de l'incrément du maxi déjà présent dans la plage Range("A1").FormulaArray > "=MAX(If(G4:G1747>=""L00000"",VALUE(right(G4:G1747,5)),0))+1"
Formule où G4:G1747 est la plage d'où on veut extraire le maxi d'une chaine commençant par L suivi de 5 chiffres. Jusque là ça marche.
Je définie une plage "plageChrono" qui dynamiquement reprends les valeurs de G4 à Gxxxx, xxxx étant la dernière cellule utilisée de la colonne G. Je pense naïvement que ma formule devient
"patrick" <stop_patrick.mathe@libertysurf.fr> a écrit dans le message de news: 44215bbd$1@news.sncf.fr...
désolé pour toutes les betises que j'ai pu enoncer
plus haut j'etais parti sur un evaluate
@+
patrick
"michdenis" <michdenis@hotmail.com> a écrit dans le message news:
ept0GpbTGHA.5496@TK2MSFTNGP11.phx.gbl...
Bonjour Le Nordiste,
Dans l'exemple suivant, toto est le nom de la plage nommée.
Dim R As String
R = Range("toto").Parent.Name & "!" & Range("Toto").Address
Range("b1").FormulaArray = _
"=MAX(If(" & R & ">=""L00000"",VALUE(right(" & R & ",5)),0))+1"
Salutations!
"Le Nordiste" <jean-paul.bataille@cegetel.fr> a écrit dans le message de
news:
Durant une procédure VB, je désire placer en A1 la formule
matricielle :
'formule matricielle de l'incrément du maxi déjà présent dans la
plage
Range("A1").FormulaArray > "=MAX(If(G4:G1747>=""L00000"",VALUE(right(G4:G1747,5)),0))+1"
Formule où G4:G1747 est la plage d'où on veut extraire le maxi d'une
chaine commençant par L suivi de 5 chiffres.
Jusque là ça marche.
Je définie une plage "plageChrono" qui dynamiquement reprends les
valeurs de G4 à Gxxxx, xxxx étant la dernière cellule utilisée
de la colonne G. Je pense naïvement que ma formule devient
"patrick" a écrit dans le message de news: 44215bbd$ désolé pour toutes les betises que j'ai pu enoncer plus haut j'etais parti sur un evaluate
@+ patrick
"michdenis" a écrit dans le message news:
Bonjour Le Nordiste,
Dans l'exemple suivant, toto est le nom de la plage nommée.
Dim R As String R = Range("toto").Parent.Name & "!" & Range("Toto").Address
Range("b1").FormulaArray = _ "=MAX(If(" & R & ">=""L00000"",VALUE(right(" & R & ",5)),0))+1"
Salutations!
"Le Nordiste" a écrit dans le message de news:
Bonjour tertous,
Durant une procédure VB, je désire placer en A1 la formule matricielle :
'formule matricielle de l'incrément du maxi déjà présent dans la plage Range("A1").FormulaArray > "=MAX(If(G4:G1747>=""L00000"",VALUE(right(G4:G1747,5)),0))+1"
Formule où G4:G1747 est la plage d'où on veut extraire le maxi d'une chaine commençant par L suivi de 5 chiffres. Jusque là ça marche.
Je définie une plage "plageChrono" qui dynamiquement reprends les valeurs de G4 à Gxxxx, xxxx étant la dernière cellule utilisée de la colonne G. Je pense naïvement que ma formule devient
Merci à tous et en particulier à MichDenis pour le " & R & " qui montre qu'il faut ici une chaine.
J'ai un peu travailler l'idée et suis arrivé grace à votre aide à tous à ceci :
'DÉFINITION DE LA COLONNE G:G COMME 'plageChronoContrat' Set plageChronoContrat = ActiveSheet.Range("G4:G" & ActiveSheet.Range("G65356").End(xlUp).Row)
'CALCUL DU 'CHRONO CONTRAT' dans une cellule brouillon 'IV1' strPlageChronoContrat = plageChronoContrat.Parent.Name & "!" & plageChronoContrat.Address Range("IV1").FormulaArray = "=MAX(If(" & strPlageChronoContrat & ">=""L00000"",VALUE(right(" & strPlageChronoContrat & ",5)),0))+1" Application.Calculation = xlCalculationAutomatic 'mise au format Lccccc strChrono = "L" & Format(Right(Range("IV1").Value, Len(Range("IV1").Value)), "00000")
Et en plus c'est drolement rapide même pour traiter 1800 lignes.
À bientôt et bonsoir à tous.
Le Nordiste
Bonsoir,
Merci à tous et en particulier à MichDenis pour le " & R & " qui
montre qu'il faut ici une chaine.
J'ai un peu travailler l'idée et suis arrivé grace à votre aide à
tous à ceci :
'DÉFINITION DE LA COLONNE G:G COMME 'plageChronoContrat'
Set plageChronoContrat = ActiveSheet.Range("G4:G" &
ActiveSheet.Range("G65356").End(xlUp).Row)
'CALCUL DU 'CHRONO CONTRAT' dans une cellule brouillon 'IV1'
strPlageChronoContrat = plageChronoContrat.Parent.Name & "!" &
plageChronoContrat.Address
Range("IV1").FormulaArray = "=MAX(If(" & strPlageChronoContrat &
">=""L00000"",VALUE(right(" & strPlageChronoContrat & ",5)),0))+1"
Application.Calculation = xlCalculationAutomatic
'mise au format Lccccc
strChrono = "L" & Format(Right(Range("IV1").Value,
Len(Range("IV1").Value)), "00000")
Et en plus c'est drolement rapide même pour traiter 1800 lignes.
Merci à tous et en particulier à MichDenis pour le " & R & " qui montre qu'il faut ici une chaine.
J'ai un peu travailler l'idée et suis arrivé grace à votre aide à tous à ceci :
'DÉFINITION DE LA COLONNE G:G COMME 'plageChronoContrat' Set plageChronoContrat = ActiveSheet.Range("G4:G" & ActiveSheet.Range("G65356").End(xlUp).Row)
'CALCUL DU 'CHRONO CONTRAT' dans une cellule brouillon 'IV1' strPlageChronoContrat = plageChronoContrat.Parent.Name & "!" & plageChronoContrat.Address Range("IV1").FormulaArray = "=MAX(If(" & strPlageChronoContrat & ">=""L00000"",VALUE(right(" & strPlageChronoContrat & ",5)),0))+1" Application.Calculation = xlCalculationAutomatic 'mise au format Lccccc strChrono = "L" & Format(Right(Range("IV1").Value, Len(Range("IV1").Value)), "00000")
Et en plus c'est drolement rapide même pour traiter 1800 lignes.