concaténer les valeurs d'une zone

  • Initiateur de la discussion Initiateur de la discussion celegorm
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

celegorm

Guest
bonjour à tous,
je voudrais faire un script qui permette de concaténer dans une variable tous les éléments d'une zone nommée.(les name()... pardon j'emploi zone car je ne sais pas comment ça s'appelle).
Pour commencer, je n'arrive pas à trouver comment faire pour savoir quelles sont les cellules qui font parti d'une zone.
D'avance merci de votre aide
 
Re : concaténer les valeurs d'une zone

Bonjour celegorm,

Peut-être comme cela :

Code:
Dim Chaine as String
For Each cel In Range(Zone)
  Chaine = Chaine + cel.Value
Next

Zone étant le nom que tu as donné à ta plage de cellules.

Cette boucle va concaténer toutes les cellules de ta plage dans l'ordre suivant :

Ligne 1, colonne 1, colonne 2, ...
Ligne 2, colonne 1, colonne 2, ...
Ligne 3, ....

Espérant t'avoir aidé.

Cordialement.
 
Re : concaténer les valeurs d'une zone

alors voici ce que j'obtiens

Code:
Sub macro3()
Dim chaine As Variant
Set nms = ActiveWorkbook.Names
Set wks = Worksheets(1)

If (nms.Count <> 0) Then
   zone = nms(1).Name

   For Each cel In Range(zone)
      chaine = chaine + cel.Value
   Next
MsgBox "ma chaine= " & chaine
End If

End Sub
la zone visée contient des données en provenance d'un site.
Si je fais une querytable sur l'adresse Google pas de problème ça fonctionne.
Par contre, si je fais la même opération sur la page d'intro du monde.fr, le script me dit "incompatibilité de type" sur la ligne "chaine= chaine+ cel.value".
je me suis dit que celà provenait de ma variable "chaine" donc je suis passé de "dim chaine as string" à dim chaine as variant...
mais ça ne fonctionne pas non plus...
à noter, que le nombre de caractères récupérés sur la page www.lemonde.fr est d'environ 32000.
Le but final de ce script est de comparer la chaine récupérée à une ancienne chaine pour signaler des changements sur tout ou parti d'un site web.
 
Dernière modification par un modérateur:
Re : concaténer les valeurs d'une zone

j'ai trouvé, suffisait de transformer la valeur en string comme ceci: cstr(cell.value)
et ça donne :
Code:
Sub macro3()
Dim chaine As Variant
Set nms = ActiveWorkbook.Names
Set wks = Worksheets(1)

If (nms.Count <> 0) Then
'For r = 1 To nms.Count
zone = nms(1).Name
'Next

For Each cell In Range(zone)
    If (cell.Value <> "") Then
    chaine = chaine + CStr(cell.Value)
    End If
Next
MsgBox "ma chaine= " & chaine
End If

End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
128
Réponses
13
Affichages
923
Retour