copie incrémentielle d'une cellule contenant une fonction
24 réponses
Elie Chayo
Bonsoir,
Pour =C3=A9liminer des caract=C3=A8res sp=C3=A9ciaux d'une cellule "1 127,6=
2 =C3=A2=E2=80=9A=C2=AC ", j'ai essay=C3=A9 "rechercher/remplacer" mais les=
chiffres affich=C3=A9s sont faux souvent multipli=C3=A9s par 1000.
J'ai pens=C3=A9 =C3=A0 utiliser la fonction gauche en copiant la 1ere cellu=
le de la colonne contenant ces signes sur une autre colonne, puis de faire =
copie incr=C3=A9mentielle de la formule. La manoeuvre manuelle r=C3=A9ussit=
parfaitement. mais traduit dans une macro:
"'copier la cellule H6 sans les signes puis copie incr=C3=A9mentielle
Range("O6").Select
ActiveCell.FormulaR1C1 =3D "=3DLEFT(RC[-7],LEN(RC[-7])-4)"
Range("O6").Select
Selection.AutoFill Destination:=3DRange("O6:60"), Type:=3DxlFillDefa=
ult
J'ai d=C3=A9clanch=C3=A9 une macro pour cette fonction et j'ai les m=C3=AAm=
es lignes. Le lancement de la macro bloque sur la derni=C3=A8re ligne et le=
d=C3=A9bogage indique:
"la m=C3=A9thode "Range" de l'objet'_Global' a =C3=A9chou=C3=A9"
Pouvez-vous me dire ce qui ne marche pas.
Eventuellement que pensez-vous d'une boucle pour copier avec cette m=C3=AAm=
e fonction les cellules successivement?
Merci
Bonjour, Essaie comme ceci : '---------------------------------------- Sub test() With ActiveSheet With .Range("O6") .Formula = "=LEFT(H6,LEN(H6)-4)" End With .Range("o6").AutoFill Destination:=.Range("o6:o60"), Type:=xlFillDefault End With End Sub '---------------------------------------- MichD
Bonjour,
Essaie comme ceci :
'----------------------------------------
Sub test()
With ActiveSheet
With .Range("O6")
.Formula = "=LEFT(H6,LEN(H6)-4)"
End With
.Range("o6").AutoFill Destination:=.Range("o6:o60"), Type:=xlFillDefault
End With
End Sub
'----------------------------------------
Bonjour, Essaie comme ceci : '---------------------------------------- Sub test() With ActiveSheet With .Range("O6") .Formula = "=LEFT(H6,LEN(H6)-4)" End With .Range("o6").AutoFill Destination:=.Range("o6:o60"), Type:=xlFillDefault End With End Sub '---------------------------------------- MichD
MichD
Et si tu veux faire disparaître les formules à la suite de l'extraction '---------------------------------------- Sub test() With ActiveSheet With .Range("O6") .Formula = "=LEFT(H6,LEN(H6)-4)" End With .Range("o6").AutoFill Destination:=.Range("o6:o60"), Type:=xlFillDefault .Range("o6:o60").value = .Range("o6:o60").value '<<<=== Ligne ajoutée End With End Sub '------------------------------------------ MichD
Et si tu veux faire disparaître les formules à la suite de l'extraction
'----------------------------------------
Sub test()
With ActiveSheet
With .Range("O6")
.Formula = "=LEFT(H6,LEN(H6)-4)"
End With
.Range("o6").AutoFill Destination:=.Range("o6:o60"), Type:=xlFillDefault
.Range("o6:o60").value = .Range("o6:o60").value '<<<=== Ligne ajoutée
End With
End Sub
'------------------------------------------
Et si tu veux faire disparaître les formules à la suite de l'extraction '---------------------------------------- Sub test() With ActiveSheet With .Range("O6") .Formula = "=LEFT(H6,LEN(H6)-4)" End With .Range("o6").AutoFill Destination:=.Range("o6:o60"), Type:=xlFillDefault .Range("o6:o60").value = .Range("o6:o60").value '<<<=== Ligne ajoutée End With End Sub '------------------------------------------ MichD
Jacquouille
Salut Denis j'ai bien essayé de copier ton msg pour l'envoyer sur le fil "commentaires". mais, il n'a pas voulu sortir de mon PC et encore moins arriver à destination. désolé, je ne puis donc t'aider. ( ah, ces caractères unicodes...) Bonne soirée Jacques " Le vin est au repas ce que le parfum est à la femme." . "MichD" a écrit dans le message de groupe de discussion : od5qrk$11bs$ Et si tu veux faire disparaître les formules à la suite de l'extraction '---------------------------------------- Sub test() With ActiveSheet With .Range("O6") .Formula = "=LEFT(H6,LEN(H6)-4)" End With .Range("o6").AutoFill Destination:=.Range("o6:o60"), Type:=xlFillDefault .Range("o6:o60").value = .Range("o6:o60").value '<<<=== Ligne ajoutée End With End Sub '------------------------------------------ MichD
Salut Denis
j'ai bien essayé de copier ton msg pour l'envoyer sur le fil "commentaires".
mais, il n'a pas voulu sortir de mon PC et encore moins arriver à
destination.
désolé, je ne puis donc t'aider. ( ah, ces caractères unicodes...)
Bonne soirée
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"MichD" a écrit dans le message de groupe de discussion :
od5qrk$11bs$1@gioia.aioe.org...
Et si tu veux faire disparaître les formules à la suite de l'extraction
'----------------------------------------
Sub test()
With ActiveSheet
With .Range("O6")
.Formula = "=LEFT(H6,LEN(H6)-4)"
End With
.Range("o6").AutoFill Destination:=.Range("o6:o60"), Type:=xlFillDefault
.Range("o6:o60").value = .Range("o6:o60").value '<<<=== Ligne ajoutée
End With
End Sub
'------------------------------------------
Salut Denis j'ai bien essayé de copier ton msg pour l'envoyer sur le fil "commentaires". mais, il n'a pas voulu sortir de mon PC et encore moins arriver à destination. désolé, je ne puis donc t'aider. ( ah, ces caractères unicodes...) Bonne soirée Jacques " Le vin est au repas ce que le parfum est à la femme." . "MichD" a écrit dans le message de groupe de discussion : od5qrk$11bs$ Et si tu veux faire disparaître les formules à la suite de l'extraction '---------------------------------------- Sub test() With ActiveSheet With .Range("O6") .Formula = "=LEFT(H6,LEN(H6)-4)" End With .Range("o6").AutoFill Destination:=.Range("o6:o60"), Type:=xlFillDefault .Range("o6:o60").value = .Range("o6:o60").value '<<<=== Ligne ajoutée End With End Sub '------------------------------------------ MichD
MichD
Il y a aussi cette manière de procéder : '---------------------------------------------------------- Sub test1() Dim Rg As Range, DerLig As Long 'Rg est une variable "OBJECT" de type RANGE. With ActiveSheet 'Détermine la dernière ligne occupée de la colonne H 'la colonne H contient les données DerLig = .Range("h" & .Rows.Count).End(xlUp).Row 'Détermine la plage à traiter Set Rg = .Range("o6:o" & DerLig) End With 'D'un seul coup copie la formule sur toute la plage With Rg .Formula = "=LEFT(" & Rg(1).Offset(, -7).Address(0, 0) & "," & Len(Rg(1).Offset(, -7).Value) - 4 & ")" 'Remplace les formules par la valeur seulement .Value = .Value End With End Sub '---------------------------------------------------------- MichD "MichD" a écrit dans le message de groupe de discussion : od5qrk$11bs$ Et si tu veux faire disparaître les formules à la suite de l'extraction '---------------------------------------- Sub test() With ActiveSheet With .Range("O6") .Formula = "=LEFT(H6,LEN(H6)-4)" End With .Range("o6").AutoFill Destination:=.Range("o6:o60"), Type:=xlFillDefault .Range("o6:o60").value = .Range("o6:o60").value '<<<=== Ligne ajoutée End With End Sub '------------------------------------------ MichD
Il y a aussi cette manière de procéder :
'----------------------------------------------------------
Sub test1()
Dim Rg As Range, DerLig As Long
'Rg est une variable "OBJECT" de type RANGE.
With ActiveSheet
'Détermine la dernière ligne occupée de la colonne H
'la colonne H contient les données
DerLig = .Range("h" & .Rows.Count).End(xlUp).Row
'Détermine la plage à traiter
Set Rg = .Range("o6:o" & DerLig)
End With
'D'un seul coup copie la formule sur toute la plage
With Rg
.Formula = "=LEFT(" & Rg(1).Offset(, -7).Address(0, 0) & "," &
Len(Rg(1).Offset(, -7).Value) - 4 & ")"
'Remplace les formules par la valeur seulement
.Value = .Value
End With
End Sub
'----------------------------------------------------------
MichD
"MichD" a écrit dans le message de groupe de discussion : od5qrk$11bs$1@gioia.aioe.org...
Et si tu veux faire disparaître les formules à la suite de l'extraction
'----------------------------------------
Sub test()
With ActiveSheet
With .Range("O6")
.Formula = "=LEFT(H6,LEN(H6)-4)"
End With
.Range("o6").AutoFill Destination:=.Range("o6:o60"), Type:=xlFillDefault
.Range("o6:o60").value = .Range("o6:o60").value '<<<=== Ligne ajoutée
End With
End Sub
'------------------------------------------
Il y a aussi cette manière de procéder : '---------------------------------------------------------- Sub test1() Dim Rg As Range, DerLig As Long 'Rg est une variable "OBJECT" de type RANGE. With ActiveSheet 'Détermine la dernière ligne occupée de la colonne H 'la colonne H contient les données DerLig = .Range("h" & .Rows.Count).End(xlUp).Row 'Détermine la plage à traiter Set Rg = .Range("o6:o" & DerLig) End With 'D'un seul coup copie la formule sur toute la plage With Rg .Formula = "=LEFT(" & Rg(1).Offset(, -7).Address(0, 0) & "," & Len(Rg(1).Offset(, -7).Value) - 4 & ")" 'Remplace les formules par la valeur seulement .Value = .Value End With End Sub '---------------------------------------------------------- MichD "MichD" a écrit dans le message de groupe de discussion : od5qrk$11bs$ Et si tu veux faire disparaître les formules à la suite de l'extraction '---------------------------------------- Sub test() With ActiveSheet With .Range("O6") .Formula = "=LEFT(H6,LEN(H6)-4)" End With .Range("o6").AutoFill Destination:=.Range("o6:o60"), Type:=xlFillDefault .Range("o6:o60").value = .Range("o6:o60").value '<<<=== Ligne ajoutée End With End Sub '------------------------------------------ MichD
MichD
Merci quand même Jacquouille. Les applications Microsoft sont décevantes! MichD
Merci quand même Jacquouille. Les applications Microsoft sont décevantes! MichD
isabelle
salut vous deux, Denis, j'ai posté ton message directement sur https://groups.google.com/forum/#!forum/microsoft.public.fr.excel j'avais essayé auparavant sur mozilla mais sans succès isabelle Le 2017-04-18 à 16:24, MichD a écrit :
Merci quand même Jacquouille. Les applications Microsoft sont décevantes! MichD
salut vous deux,
Denis, j'ai posté ton message directement sur
https://groups.google.com/forum/#!forum/microsoft.public.fr.excel
j'avais essayé auparavant sur mozilla mais sans succès
isabelle
salut vous deux, Denis, j'ai posté ton message directement sur https://groups.google.com/forum/#!forum/microsoft.public.fr.excel j'avais essayé auparavant sur mozilla mais sans succès isabelle Le 2017-04-18 à 16:24, MichD a écrit :
Merci quand même Jacquouille. Les applications Microsoft sont décevantes! MichD
Elie Chayo
Le mercredi 19 avril 2017 05:52:21 UTC+3, isabelle a écrit :
salut vous deux, Denis, j'ai posté ton message directement sur https://groups.google.com/forum/#!forum/microsoft.public.fr.excel j'avais essayé auparavant sur mozilla mais sans succès isabelle Le 2017-04-18 à 16:24, MichD a écrit :
Merci quand même Jacquouille. Les applications Microsoft sont décevantes! MichD
Bonjour à vous tous et merci de vos réponses, Salut MichD, je n'ai pas voulu te solliciter de nouveau car je t'avais suff isament accaparé. J'ai trouvé ce moyen de supprimer les caractères puis de transfor mer les données en nombres pour les recoller dans la colonne d'origine . C'est peut-être un peu compliqué mais cela fonctionne manuellem ent. Je vais essayer de digérer ce que vous me donnez. Encore merci
Le mercredi 19 avril 2017 05:52:21 UTC+3, isabelle a écrit :
salut vous deux,
Denis, j'ai posté ton message directement sur
https://groups.google.com/forum/#!forum/microsoft.public.fr.excel
j'avais essayé auparavant sur mozilla mais sans succès
isabelle
Le 2017-04-18 à 16:24, MichD a écrit :
> Merci quand même Jacquouille.
>
> Les applications Microsoft sont décevantes!
>
> MichD
>
>
Bonjour à vous tous et merci de vos réponses,
Salut MichD, je n'ai pas voulu te solliciter de nouveau car je t'avais suff isament accaparé.
J'ai trouvé ce moyen de supprimer les caractères puis de transfor mer les données en nombres pour les recoller dans la colonne d'origine . C'est peut-être un peu compliqué mais cela fonctionne manuellem ent.
Je vais essayer de digérer ce que vous me donnez.
Encore merci
Le mercredi 19 avril 2017 05:52:21 UTC+3, isabelle a écrit :
salut vous deux, Denis, j'ai posté ton message directement sur https://groups.google.com/forum/#!forum/microsoft.public.fr.excel j'avais essayé auparavant sur mozilla mais sans succès isabelle Le 2017-04-18 à 16:24, MichD a écrit :
Merci quand même Jacquouille. Les applications Microsoft sont décevantes! MichD
Bonjour à vous tous et merci de vos réponses, Salut MichD, je n'ai pas voulu te solliciter de nouveau car je t'avais suff isament accaparé. J'ai trouvé ce moyen de supprimer les caractères puis de transfor mer les données en nombres pour les recoller dans la colonne d'origine . C'est peut-être un peu compliqué mais cela fonctionne manuellem ent. Je vais essayer de digérer ce que vous me donnez. Encore merci
Elie Chayo
Le mercredi 19 avril 2017 12:15:37 UTC+3, Elie Chayo a écrit :
Le mercredi 19 avril 2017 05:52:21 UTC+3, isabelle a écrit :
salut vous deux, Denis, j'ai posté ton message directement sur https://groups.google.com/forum/#!forum/microsoft.public.fr.excel j'avais essayé auparavant sur mozilla mais sans succès isabelle Le 2017-04-18 à 16:24, MichD a écrit : > Merci quand même Jacquouille. > > Les applications Microsoft sont décevantes! > > MichD > >
Bonjour à vous tous et merci de vos réponses, Salut MichD, je n'ai pas voulu te solliciter de nouveau car je t'avais su ffisament accaparé. J'ai trouvé ce moyen de supprimer les caractères puis de transf ormer les données en nombres pour les recoller dans la colonne d'origi ne. C'est peut-être un peu compliqué mais cela fonctionne manuell ement. Je vais essayer de digérer ce que vous me donnez. Encore merci
Re MichD, De toutes les 3 formules que tu m'as données, en réalité la 3eme regroupe le tout. C'est celle que je vais appliquer. En regardant la 1ere macro très ancienne, il y avait la même proc édure pour déterminer la dernière ligne et copier le tout; c ela permettait de la coller ensuite à la suite des procédantes po ur regrouper tout sur une seule feuille. Si comme je l'espère cela fonctionne, tout va être simplifié .
Le mercredi 19 avril 2017 12:15:37 UTC+3, Elie Chayo a écrit :
Le mercredi 19 avril 2017 05:52:21 UTC+3, isabelle a écrit :
> salut vous deux,
> Denis, j'ai posté ton message directement sur
> https://groups.google.com/forum/#!forum/microsoft.public.fr.excel
> j'avais essayé auparavant sur mozilla mais sans succès
> isabelle
>
> Le 2017-04-18 à 16:24, MichD a écrit :
> > Merci quand même Jacquouille.
> >
> > Les applications Microsoft sont décevantes!
> >
> > MichD
> >
> >
Bonjour à vous tous et merci de vos réponses,
Salut MichD, je n'ai pas voulu te solliciter de nouveau car je t'avais su ffisament accaparé.
J'ai trouvé ce moyen de supprimer les caractères puis de transf ormer les données en nombres pour les recoller dans la colonne d'origi ne. C'est peut-être un peu compliqué mais cela fonctionne manuell ement.
Je vais essayer de digérer ce que vous me donnez.
Encore merci
Re MichD,
De toutes les 3 formules que tu m'as données, en réalité la 3eme regroupe le tout. C'est celle que je vais appliquer.
En regardant la 1ere macro très ancienne, il y avait la même proc édure pour déterminer la dernière ligne et copier le tout; c ela permettait de la coller ensuite à la suite des procédantes po ur regrouper tout sur une seule feuille.
Si comme je l'espère cela fonctionne, tout va être simplifié .
Le mercredi 19 avril 2017 12:15:37 UTC+3, Elie Chayo a écrit :
Le mercredi 19 avril 2017 05:52:21 UTC+3, isabelle a écrit :
salut vous deux, Denis, j'ai posté ton message directement sur https://groups.google.com/forum/#!forum/microsoft.public.fr.excel j'avais essayé auparavant sur mozilla mais sans succès isabelle Le 2017-04-18 à 16:24, MichD a écrit : > Merci quand même Jacquouille. > > Les applications Microsoft sont décevantes! > > MichD > >
Bonjour à vous tous et merci de vos réponses, Salut MichD, je n'ai pas voulu te solliciter de nouveau car je t'avais su ffisament accaparé. J'ai trouvé ce moyen de supprimer les caractères puis de transf ormer les données en nombres pour les recoller dans la colonne d'origi ne. C'est peut-être un peu compliqué mais cela fonctionne manuell ement. Je vais essayer de digérer ce que vous me donnez. Encore merci
Re MichD, De toutes les 3 formules que tu m'as données, en réalité la 3eme regroupe le tout. C'est celle que je vais appliquer. En regardant la 1ere macro très ancienne, il y avait la même proc édure pour déterminer la dernière ligne et copier le tout; c ela permettait de la coller ensuite à la suite des procédantes po ur regrouper tout sur une seule feuille. Si comme je l'espère cela fonctionne, tout va être simplifié .
Si à la fin de la procédure, tu désires copier le résultat de la colonne O vers la colonne H, il manque une ligne de code... Regarde la dernière ligne de la procédure! '-------------------------------------------------------------- Sub test1() Dim Rg As Range, DerLig As Long 'Rg est une variable "OBJECT" de type RANGE. With ActiveSheet 'Détermine la dernière ligne occupée de la colonne H 'la colonne H contient les données DerLig = .Range("h" & .Rows.Count).End(xlUp).Row 'Détermine la plage à traiter Set Rg = .Range("o6:o" & DerLig) End With 'D'un seul coup copie la formule sur toute la plage With Rg .Formula = "=LEFT(" & Rg(1).Offset(, -7).Address(0, 0) & _ "," & Len(Rg(1).Offset(, -7).Value) - 4 & ")" 'Remplace les formules par la valeur seulement .Value = .Value .Cut Rg.Offset(, -7) '<<<<======= Ligne ajoutée End With End Sub '-------------------------------------------------------------- MichD
Si à la fin de la procédure, tu désires copier le résultat de la colonne O vers la colonne H,
il manque une ligne de code...
Regarde la dernière ligne de la procédure!
'--------------------------------------------------------------
Sub test1()
Dim Rg As Range, DerLig As Long
'Rg est une variable "OBJECT" de type RANGE.
With ActiveSheet
'Détermine la dernière ligne occupée de la colonne H
'la colonne H contient les données
DerLig = .Range("h" & .Rows.Count).End(xlUp).Row
'Détermine la plage à traiter
Set Rg = .Range("o6:o" & DerLig)
End With
'D'un seul coup copie la formule sur toute la plage
With Rg
.Formula = "=LEFT(" & Rg(1).Offset(, -7).Address(0, 0) & _
"," & Len(Rg(1).Offset(, -7).Value) - 4 & ")"
'Remplace les formules par la valeur seulement
.Value = .Value
.Cut Rg.Offset(, -7) '<<<<======= Ligne ajoutée
End With
End Sub
'--------------------------------------------------------------
Si à la fin de la procédure, tu désires copier le résultat de la colonne O vers la colonne H, il manque une ligne de code... Regarde la dernière ligne de la procédure! '-------------------------------------------------------------- Sub test1() Dim Rg As Range, DerLig As Long 'Rg est une variable "OBJECT" de type RANGE. With ActiveSheet 'Détermine la dernière ligne occupée de la colonne H 'la colonne H contient les données DerLig = .Range("h" & .Rows.Count).End(xlUp).Row 'Détermine la plage à traiter Set Rg = .Range("o6:o" & DerLig) End With 'D'un seul coup copie la formule sur toute la plage With Rg .Formula = "=LEFT(" & Rg(1).Offset(, -7).Address(0, 0) & _ "," & Len(Rg(1).Offset(, -7).Value) - 4 & ")" 'Remplace les formules par la valeur seulement .Value = .Value .Cut Rg.Offset(, -7) '<<<<======= Ligne ajoutée End With End Sub '-------------------------------------------------------------- MichD