Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/10/2011, 16h25   #1
Membre éprouvé
 
Avatar de Runsh63
 
Homme Duc
Nihiliste
Inscription : mars 2011
Messages : 395
Détails du profil
Informations personnelles :
Nom : Homme Duc
Âge : 31
Localisation : France, Puy de Dôme (Auvergne)

Informations professionnelles :
Activité : Nihiliste
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 395
Points : 419
Points : 419
Par défaut Problème pour un copier / coller

Bonjour,

Afin de transformer des nombres dont certains sont au format texte en chiffre, j'avais utilisé ce code :

Code :
1
2
3
4
5
6
7
8
9
Dim PNLE2 As Long, k As Byte, Account As Range
        PNLE2 = .Cells(.Rows.Count, 1).End(xlUp).Row
        k = 1
 
            For Each Account In .Range("B2:B" & PNLE2)
            Account.Value = Account.Value * k
                With Account.NumberFormat = General
                End With
            Next Account
Du coup, je l'ai remplacé par celui-ci, qui a l'avantage d'être plus rapide :

Code :
1
2
3
4
5
6
7
8
9
        Dim PNLE2 As Long
        PNLE2 = .Cells(.Rows.Count, 2).End(xlUp).Row
 
            With .Range("K2:K" & PNLE2)
                .Formula = "=VALUE(RC[-9])"
                .Value = .Value
                .Copy .Range("B2:B" & PNLE2)
                .ClearContents
            End With
Ca marche au niveau du résultat recheché, mais lors de cette ligne :

Code :
.Copy .Range("B2:B" & PNLE2)
La première valeur copiée commence en L3 (au lieu de B2)...

Savez-vous pourquoi et surtout pouvez-vous SVP m'aider à obtenir le résultat désiré ?

Je vous remercie énormément par avance (je suis dans le jus et ai peu de temps devant moi, toute aide sera énormément appréciée).
__________________
Cordialement,

Runsh
Runsh63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2011, 16h38   #2
Membre Expert
 
Avatar de Jean-Pierre49
 
Homme J-Pierre Catherine
Conception Calcul
Inscription : juillet 2007
Messages : 659
Détails du profil
Informations personnelles :
Nom : Homme J-Pierre Catherine
Âge : 57
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conception Calcul
Secteur : Industrie

Informations forums :
Inscription : juillet 2007
Messages : 659
Points : 1 856
Points : 1 856
Bonjour,
Essais avec


Code :
.Copy Range("B2:B" & PNLE2)
Le point devant le range me gène un peu

tu dis
__________________
Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------
Jean-Pierre49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2011, 17h35   #3
Membre Expert
 
Avatar de aalex_38
 
Inscription : septembre 2007
Messages : 1 596
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 1 596
Points : 1 748
Points : 1 748
Bonjour,


En effet ceci devrait fonctionner :

Code :
1
2
3
4
5
 
With Range("E2:E" & PNLE2)
    .Copy Destination:=Range("K2:K" & PNLE2)
    .Value = .Value
End With

Mais à quoi sert le reste ? :

Code :
1
2
3
4
With .Range("K2:K" & PNLE2)
                .Formula = "=VALUE(RC[-9])"
                              .ClearContents
            End With
__________________
aalex_38 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2011, 18h16   #4
Membre éprouvé
 
Avatar de Runsh63
 
Homme Duc
Nihiliste
Inscription : mars 2011
Messages : 395
Détails du profil
Informations personnelles :
Nom : Homme Duc
Âge : 31
Localisation : France, Puy de Dôme (Auvergne)

Informations professionnelles :
Activité : Nihiliste
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 395
Points : 419
Points : 419
Merci à vous deux pour vos réponses, j'ai également trouvé une parade avec ceci :

Code :
.Copy .Range(.Cells(2, 2), .Cells(2, PNLE2))
aalex_38, le VALUE me sert à uniformiser des comptes qui sont compilés dans des formats différents en chiffre. J'ai l'impression que ça marche. Peut-être as-tu une meilleure proposition, auquel cas je suis preneur

En tout cas encore merci !
__________________
Cordialement,

Runsh
Runsh63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h07.


 
 
 
 
Partenaires

Hébergement Web