Editer variable

Bonjour à toutes et tous,

Ci-joint un petit code :

If LCase(Cells(i, 31).Value) = "@" Then

Pourriez vous m'indiquer comment procéder pour mettre ma liste de Msg les uns aprés les autres

dans un nouvel dossier

bien cordialement

Bonjour,

Ton propos n'est pas très clair ! Un dossier (synonyme de répertoire) est un emplacement de ton disque dur ou d'un support de stockage, où tu enregistres des fichiers.

Pour placer les contenus successifs de ta variable Msg, il convient d'indiquer un support susceptible d'accueillir des données texte...

Et tu pourras ajouter une variable pour incrémenter l'insertion de ces données sur le support choisi.

Cordialement.

Bonjour et désolé pour l'imprecision,

Nouveau dossier = nouveau dossier excel quelconque et onglet quelconque.

C'est juste pour avoir la liste de Msg existant qui apparait en A1;A2;A3 etc... dans une autre feuille excel

car celui qui est en cours sera fermé.

Maitre Ferrand peux tu stp m'éclairer sur un bout de code?

Bien cordialement

Tu m'excuseras mais je venais de te fournir la signification de dossier dès lors que tu t'installes devant un ordinateur sous Windows... et tu me parles de dossier Excel !

Il n'y a jamais eu de composant Excel appelé dossier. Si tu parles de fichier, tu peux dire fichier ou classeur...

Comme on ne sait si tu as un classeur prévu à cet effet ou non, qu'il faudrait ou non ouvrir... on va opter pour en créer un par exportation d'une feuille où l'on aura placé les messages dans un nouveau classeur. On commence donc par créer cette feuille qu'on pourra exporter par la suite :

    Dim wsMsg As Worksheet
    '...
    Set wsMsg = Worksheets.Add(before:=Worksheets(1))

Mais si on fait ainsi, avec ton code non qualifié, ça va faire tilt !

Mais on ne sait sur quelle feuille tu opères, sinon qu'elle est censée être active pendant que tu opères , on va donc en tenir compte :

    Dim wsA As Worksheet, wsMsg As Worksheet, m%, Msg$
    Set wsA = ActiveSheet
    Set wsMsg = Worksheets.Add(before:=Worksheets(1))
    '... ?
    With wsA
        'ton code ?
        'For i = ? To ?
            If LCase(.Cells(i, 31).Value) = "@" Then
                m = m + 1: wsMsg.Cells(1, 1) = .Cells(i, 28)
                Msg = Msg & Chr(10) & .Cells(i, 28)
            End If
        Next i
    End With
    Msg = "Résumé :" & Msg
    MsgBox Msg, vbExclamation
    '... ?
    wsMsg.Move
    'Le nouveau classeur devient le classeur actif, on aura donc les messages en vue
    'Eventuellement, enregistrer le classeur actif :
    'ActiveWorkbook.SaveAs "chemin" & "NomClasseur"
    ThisWorkbook.Close False ' ou True ? pour fermer le classeur de travail

On récupère donc préalablement ta feuille active dans une variable, on crée la nouvelle feuille, on déroule ta procédure dont on ne connait pas grand chose sauf un bout de boucle, on met ta feuille ex-active sous bloc With, ce qui permettra de qualifier tes expressions, en ajoutant un point devant Cells...

A la fin on l'exporte, puis tout dépend de tes choix... !

Cordialement.

MERCI Infiniment !!!!!

Pour Dossier j'ai revu mon vocabulaire et Merci de to éclairage

Cordialement

Bonjour,

une incongruité en passant :

If LCase(Cells(i, 31).Value) = "@" 

@ n'a pas de majuscule ou minuscule, LCase est inutile.

eric

Très juste Eric !

Moi je m'étais plutôt demandé ce que pouvait bien faire tout seul ce caractère dans une cellule... ! Du coup je suis passé sur cette subtilité !

Bonne soirée.

Rechercher des sujets similaires à "editer variable"