Copier-coller de page web

xavier44

XLDnaute Nouveau
Bonsoir le forum
J'utilise ce code:

ActiveSheet.PasteSpecial Format:="Texte", Link:=False, DisplayAsIcon:=False
ActiveCell.WrapText = False

pour coller un copier venant de page web.
Le pb c'est les chr(13), le paste se fait sur plusieurs cellules à cause du CR.

Une idée de code ?

Je pensais envoyer le clipBoard dans une string et la néttoyer, remplacer les Cr par des ctrl cr. Mais je ne sais pas comment utiliser la methode PasteSpecial Format:="Texte" avec une variable !

Je n'ai pas trouvé la const vb pour le Ctrl cr.

Merci pour votre aide.
 

xavier44

XLDnaute Nouveau
Re : Copier-coller de page web

Bonjour à tous et merci à Pierrot de se préoccuper de mon pb.

La constante ou le code clavier que je cherche c'est "Ctrl return".
Celui qu'on fait pour aller à la ligne dans une cellule.

Le code est simple
Après avoir copier du texte sur une page html faire le collage spécial "Texte"

Sub ColleResume()
ActiveSheet.PasteSpecial Format:="Texte", Link:=False, DisplayAsIcon:=False
ActiveCell.WrapText = False
end sub

"Format= texte" de cette methode supprime le codage html, mais il reste tjrs les cr (chr(13)) qui font que le paste se fait sur plusieurs cellules

Merci pour votre aide
 

Pierrot93

XLDnaute Barbatruc
Re : Copier-coller de page web

Re Xavier

Oui erreur de ma part la constante est "vbcr" pour le chr13 (saut de paragraphe), désolé je t'avais donné "vblf" le chr 10 (saut de ligne).

En prime un code ci dessous qui pourra peut être te servir.

Code:
Sub ColleResume()
Dim montexte As String, c As Range

ActiveSheet.PasteSpecial Format:="Texte", Link:=False, DisplayAsIcon:=False

If ActiveCell.Offset(1, 0) <> "" Then
    For Each c In Selection
        montexte = montexte & c.Value & " "
    Next c
End If

Selection.ClearContents
ActiveCell.Value = montexte
End Sub

bon après midi
@+
 

xavier44

XLDnaute Nouveau
Re : Copier-coller de page web

Ok pierrot,
Le code modifié:

Sub ColleResume()
Dim montexte As String, c As Range, i As Integer
ActiveSheet.PasteSpecial Format:="Texte", Link:=False, DisplayAsIcon:=False
i = 0
For Each c In Selection
If ActiveCell.Offset(i, 0) <> "" Then
montexte = montexte & c.Value & " "
End If
i = i + 1
Next c
Selection.ClearContents
ActiveCell.Value = montexte
End Sub

Problème, ce collage se fait dans une cellule entourée d'autre cellules avec leurs propres valeurs. C'est pourquoi je voudrais virer ces retours chariot avant le collage effectif en appliquant le méthode PasteSpecial à une variable.
Sinon ta méthode appliquée dans un coin en dehors de ma db est valable.
merci pour cette participation.
 

Pierrot93

XLDnaute Barbatruc
Re : Copier-coller de page web

Re Xavier

A priori le test dans le code que je t'ais donné ne sert à rien, je pense que tu peux l'enlever :

Code:
If ActiveCell.Offset(1, 0) <> "" Then

Par contre je ne vois pas du tout comment affecter le contenu du presse papier à une variable. Peut être que quelqu'un d'autre aura une solution...

Sinon coller le contenu vers la fin du classeur, l'éffacer et envoyer le contenu de la variable "montexte" vers la cellule concernée me parait une bonne solution.

@+
 

Discussions similaires

Statistiques des forums

Discussions
312 609
Messages
2 090 193
Membres
104 449
dernier inscrit
Miguel937