IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Coller des cellules au format texte [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 6
    Par défaut Coller des cellules au format texte
    Bonjour,

    Je vous écris car j'ai écrit une macro permettant de copier les cellules d'un tableau et de les coller dans un autre onglet. Sauf que j'aimerais les coller au format texte, sans les formules. Quelqu'un peut-il m'aider svp?
    Voici à quoi ressemble la macro:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    Sub Copie()
    Dim numeroligne As Integer
    Dim numeroligne_histo As Integer
     
     
    numeroligne = 3
     
     
    For numeroligne_histo = 3 To 10000
     
    If Worksheets("Historique en-cours").Cells(numeroligne_histo, 3) = "" Then
     
    While Worksheets("Arrêts en cours").Cells(numeroligne, 3) <> ""
    Worksheets("Arrêts en cours").Range(Worksheets("Arrêts en cours").Cells(numeroligne, 1), Worksheets("Arrêts en cours").Cells(numeroligne, 13)).Copy
    Worksheets("Historique en-cours").Rows(numeroligne_histo).PasteSpecial
    numeroligne = numeroligne + 1
    numeroligne_histo = numeroligne_histo + 1
    Wend
    Else:
    numeroligne_histo = numeroligne_histo + 1
     
    End If
     
    Next
     
    End Sub

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Il suffit d'ajouter xlPasteValues en première option de ton PasteSpecial.
    L'enregistreur automatique de macro aurait pu te donner cette information.

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 153
    Par défaut
    Bonjour,

    Essaie peut être ça (pas testé):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Sub Copie()
    Dim numeroligne As Integer
    Dim numeroligne_histo As Integer
     
    numeroligne = 3
     
    For numeroligne_histo = 3 To 10000
     
    If Worksheets("Historique en-cours").Cells(numeroligne_histo, 3) = "" Then
     
    While Worksheets("Arrêts en cours").Cells(numeroligne, 3) <> ""
    Worksheets("Arrêts en cours").Range(Worksheets("Arrêts en cours").Cells(numeroligne, 1), Worksheets("Arrêts en cours").Cells(numeroligne, 13)).Copy
    Worksheets("Historique en-cours").Rows(numeroligne_histo).PasteSpecial Paste:=xlPasteValues
    Worksheets("Historique en-cours").Rows(numeroligne_histo).NumberFormat = "@"
    numeroligne = numeroligne + 1
    numeroligne_histo = numeroligne_histo + 1
    Wend
    Else:
    numeroligne_histo = numeroligne_histo + 1
     
    End If
     
    Next
     
    End Sub
    Mr Poulpe

  4. #4
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 6
    Par défaut
    Merci de vos réponses.

    Mr Poulpe, maintenant Excel me laisse une ligne blanche entre 2 copier/coller.... Pourquoi?

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 153
    Par défaut
    Bonjour,

    J'ai remarqué que tu incrémentais ta variable numeroligne_histo en cours d'exécution. Or une boucle for incrémente déjà le compteur automatiquement de 1 à chaque passage (contrairement à une boucle while). Si tu incrémentes ton compteur en cours d'exécution, alors elle se trouve incrémentée deux fois (une fois par la boucle for et une fois par ton incrémentation).

    Essaie avec le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Sub Copie()
    Dim numeroligne As Integer
    Dim numeroligne_histo As Integer
     
     
    numeroligne = 3
     
     
    For numeroligne_histo = 3 To 10000
     
    If Worksheets("Historique en-cours").Cells(numeroligne_histo, 3) = "" Then
     
    While Worksheets("Arrêts en cours").Cells(numeroligne, 3) <> ""
    Worksheets("Arrêts en cours").Range(Worksheets("Arrêts en cours").Cells(numeroligne, 1), Worksheets("Arrêts en cours").Cells(numeroligne, 13)).Copy
    Worksheets("Historique en-cours").Rows(numeroligne_histo).PasteSpecial Paste:=xlPasteValues
    Worksheets("Historique en-cours").Rows(numeroligne_histo).NumberFormat = "@"
    numeroligne = numeroligne + 1
    'numeroligne_histo = numeroligne_histo + 1
    Wend
    Else:
    'numeroligne_histo = numeroligne_histo + 1
     
    End If
     
    Next
     
    End Sub
    Poulpe

  6. #6
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 6
    Par défaut
    Merci Mr Poulpe.

    Maintenant ça fonctionne mais que si j'enlève numeroligne_histo = numeroligne_histo + 1 après le else, ce qui donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    For numeroligne_histo = 3 To 10000
     
    If Worksheets("Historique en-cours").Cells(numeroligne_histo, 3) = "" Then
     
    While Worksheets("Arrêts en cours").Cells(numeroligne, 3) <> ""
    Worksheets("Arrêts en cours").Range(Worksheets("Arrêts en cours").Cells(numeroligne, 1), Worksheets("Arrêts en cours").Cells(numeroligne, 11)).Copy
    Worksheets("Historique en-cours").Rows(numeroligne_histo).PasteSpecial Paste:=xlPasteValues
     
    numeroligne = numeroligne + 1
    numeroligne_histo = numeroligne_histo + 1
    Wend
    Else
     
     
    End If
     
    Next
     
    End Sub
    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Additionner des cellules de format texte
    Par mina972 dans le forum Excel
    Réponses: 4
    Dernier message: 30/01/2014, 06h49
  2. [Vxi3] couleur des cellules et format de texte WEBI
    Par pierre arnaud dans le forum Webi
    Réponses: 7
    Dernier message: 07/12/2012, 09h59
  3. [VBA-W] Coller des cellules au format image.
    Par $p00ky dans le forum VBA Word
    Réponses: 3
    Dernier message: 06/06/2006, 10h56
  4. [VBA-E] cellule au format texte a la creation d'une feuille
    Par julio84 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/04/2006, 17h36
  5. Réponses: 5
    Dernier message: 14/02/2006, 14h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo