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 :

Variable avec plus de 255 caractères


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2019
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2019
    Messages : 53
    Par défaut Variable avec plus de 255 caractères
    Bonjour à tous

    Je n'ai rien trouvé pour l'instant

    Le nombre de ref cellules est variable.

    Dans ce premier cas cela fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    test_tabl_total = "AV12,BJ1,CO1,AN6,AC11,J1,ED5,AU10,Z14,AV2,BY2,CZ6,BM11,BG4,L8,BC12,FJ2"
    Set plage = Range(test_tabl_total) '.Address
    plage.Value = "OK"
    Dans ce second cas c'est impossible :

    Erreur d'exécution "1004"
    La méthode "Range" de l'objet "Global" a échoué

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    test_tabl_total = "CC1,BM6,AS11,AM1,AX6,AM11,DK2,EA6,CR11,BP1,EB6,CS11,DX1,EP3,EJ7,AF12,CZ2,BU3,BR7,FJ11,BQ1,EJ5,AY10,A15,EV2,AQ5,EL8,DC12,AT1,AB5,EE8,CW12,EY2,BV5,AV9,EA12,DV1,L7,EE11,AD1,EC1,EW5,CC10,EE2,AN4,F8,AV12,BJ1,CO1,AN6,AC11,J1,ED5,AU10,Z14,AV2,BY2,CZ6,BM11,BG4,L8,BC12,FJ2,DN1,EZ5,DE10,EO1,CY6,BL11,DM1,BU1,AV4,H8,AY12,DQ1,BU5,AU9,DZ12,EB1,U1,BQ4,Q8,BD12,FF1,BL6,AR11,BO1,FK2,CC6,BI11,EM2,DM6,BT11,K2,N2,DV5,K10,FK12,BG1,AN5,EI8,CZ12,DD1,EC2,EE5,AV10,DH14,AK2,BO5,AB9,DV12,DA1,AX2,DR5,FL9,FI12,AZ2,L6,A11,AN2,FG2,DS5,A10,FJ12,FK1,AC4,D8,AT12,DM2,EV1,AU4,G8,AX12,CW2,E6,FK10,N1,BK1,AM6,AB11,AG2,FK3,EM7,AI12,K3,FA2,EI5,AX10,DI14,AD2,L5,DS8,CS12,BR2,BL2,R7,EO11,DY2,FA4,BR8,BZ12,DZ2,AE1,FH5,ED10,L1,AR6,AG11,U2,DK1,DW5,L10,A13,CZ1,FK5,EP10,EM1,G3,AR5,EM8,DD12,BP6,AV11,AE2,AU1,CC4,AE8,BJ12,A4,EO7,AK12,BB2,R2,CJ6,BJ11,DC5,DT9,EY12,DB2,BB1,EZ3,EK7,AG12,DY6,CE11,AH2,DA2,ET6,DB11,EV6,DD11,AX1,EE1,BR4,R8,BE12,BW6,BB11,BC1,BQ2,AY6,AN11,AC3,AG7,EW11,CX2,DL2,DM5,EO9,FD12,DS6,BZ11,I2,DS4,"
    Set plage = Range(test_tabl_total) '.Address
    plage.Value = "OK"
    Je suppose que cela vient du nombre de caractères ! Comment peut-on contourner ce problème ? sauf faire une boucle

    Merci d'avance
    Eric

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour

    Essaies autrement en utilisant UNION

    Exemple premier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Pla1=" tes adresses 1"
    Pla2="tes adresses 2"
     
    Set Plage=Union(Range(Pla1),Range(Pla2))
    Tu pourra par la suite faire mieux

  3. #3
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2019
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2019
    Messages : 53
    Par défaut
    Bonjour à tous
    Bonjour et merci mercatog

    C'est le deuxième cas qui pose problème ! d'où ma supposition du trop grand nombre de caractères

    J'ai essayé ton code, mais c'est le "Set ..." qu'il n'aime pas.

    Plus simplement mon problème est : je récupère une suite d "adresses", et j'aimerai écrire dans (ou colorier ou ...) ces cellules suivant les cas.

    Je peux passer par un "array", un "tableau 2D" , variable, .... mais pas par une boucle (je sais faire). Y aurait-il une solution en 1 ligne ou 2 ?

    Merci d'avance pour vos propositions

    Eric

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour

    Comment tu obtiens la valeur de ta variable Test_Tabl_Total ?
    Tu pourras là travailler; soit en limitant la longueur à 255 et tu recommences soit tu travailles cellule par cellule

    Sinon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Test()
    Dim Test_Tabl_Total  As String
    Dim Plage As Range
    Dim Tablo
     
    Test_Tabl_Total = "CC1,BM6,AS11,AM1,AX6,AM11,DK2,EA6,CR11,BP1,EB6,CS11,DX1,EP3,EJ7,AF12,CZ2,BU3,BR7,FJ11,BQ1,EJ5,AY10,A15,EV2,AQ5,EL8,DC12,AT1,AB5,EE8,CW12,EY2,BV5,AV9,EA12,DV1,L7,EE11,AD1,EC1,EW5,CC10,EE2,AN4,F8,AV12,BJ1,CO1,AN6,AC11,J1,ED5,AU10,Z14,AV2,BY2,CZ6,BM11,BG4,L8,BC12,FJ2,DN1,EZ5,DE10,EO1,CY6,BL11,DM1,BU1,AV4,H8,AY12,DQ1,BU5,AU9,DZ12,EB1,U1,BQ4,Q8,BD12,FF1,BL6,AR11,BO1,FK2,CC6,BI11,EM2,DM6,BT11,K2,N2,DV5,K10,FK12,BG1,AN5,EI8,CZ12,DD1,EC2,EE5,AV10,DH14,AK2,BO5,AB9,DV12,DA1,AX2,DR5,FL9,FI12,AZ2,L6,A11,AN2,FG2,DS5,A10,FJ12,FK1,AC4,D8,AT12,DM2,EV1,AU4,G8,AX12,CW2,E6,FK10,N1,BK1,AM6,AB11,AG2,FK3,EM7,AI12,K3,FA2,EI5,AX10,DI14,AD2,L5,DS8,CS12,BR2,BL2,R7,EO11,DY2,FA4,BR8,BZ12,DZ2,AE1,FH5,ED10,L1,AR6,AG11,U2,DK1,DW5,L10,A13,CZ1,FK5,EP10,EM1,G3,AR5,EM8,DD12,BP6,AV11,AE2,AU1,CC4,AE8,BJ12,A4,EO7,AK12,BB2,R2,CJ6,BJ11,DC5,DT9,EY12,DB2,BB1,EZ3,EK7,AG12,DY6,CE11,AH2,DA2,ET6,DB11,EV6,DD11,AX1,EE1,BR4,R8,BE12,BW6,BB11,BC1,BQ2,AY6,AN11,AC3,AG7,EW11,CX2,DL2,DM5,EO9,FD12,DS6,BZ11,I2,DS4"
    Tablo = Split(Test_Tabl_Total, ",")
    Set Plage = Range(Tablo(0))
    For i = 1 To UBound(Tablo)
        Set Plage = Union(Plage, Range(Tablo(i)))
    Next i
    Plage.Value = "OK"
    Set Plage = Nothing
    End Sub

  5. #5
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2019
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2019
    Messages : 53
    Par défaut
    Bonjour à tous
    Bonjour mercatog

    Mercatog, je viens de découvrir ta réponse.

    Je ne pourrai "tester" ta proposition que dans quelques jours.

    Merci

    Eric

  6. #6
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2019
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2019
    Messages : 53
    Par défaut
    Bonsoir à Tous
    Bonsoir mercatog

    Merci pour ta proposition.

    Mon désir premier était "sans boucle" sinon on peut faire comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ....
        For a = 0 To UBound(Tablo)
            Range(Tablo(a))="X"
        Next a
    Par ton code, j'ai appris "union(plage, ...." ,SUPER

    Merci beaucoup

    Eric

Discussions similaires

  1. [AC-2013] Etat avec zone de plus de 255 caractères
    Par totofff78 dans le forum IHM
    Réponses: 6
    Dernier message: 31/08/2018, 22h53
  2. [XL-2007] Problème macro, avec plus de 255 caractères dans une cellule
    Par jaquo dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/10/2016, 10h26
  3. String avec plus de 255 caractères
    Par draco951 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 10/02/2016, 08h30
  4. [XL-2003] Coller avec liaison plus de 255 caractères
    Par jfhoo dans le forum Excel
    Réponses: 5
    Dernier message: 26/11/2013, 18h09
  5. [AC-2007] Champs Mémo avec plus de 255 caractères
    Par curt dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 04/04/2010, 16h08

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