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 :

Paramétrage de renvoie à la ligne lors de l'écriture dans cellules fusionnées


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Points : 520
    Points
    520
    Par défaut Paramétrage de renvoie à la ligne lors de l'écriture dans cellules fusionnées
    bonjour vous tous du forum

    comment peut'on faire pour qu’un textbox applique la fonction de RowHeight dans une cell formatée automatiquement de type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Range("D" & lig & ":H" & lig).Merge
    Et ce uniquement quand le besoin se fait sentir,
    j’ai essayé mais ce sont toutes les lignes qui sont concernées
    , je préfèrerai que cela se passe quand les données a écrire arrive en bout des cells formatées, comme un renvoie a la ligne
    Merci par avance
    Cordialement
    Pascal

  2. #2
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonsoir Pascal,

    C'est probablement dû à la fin de journée mais je ne sui poas sûr d'avoir bien compris ce que tu veux faire ??? :0(
    Tu veux renvoyer à la ligne dans un TextBox ? Si c'est ça, il te faut mettre sa propriété "MultiLine" à True et alors, tu peux remplir avec un truc du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TextBox1.Text = "Ma première ligne" & vbCrLf & "ma seconde ligne"
    Adapter la hauteur du TextBox ou régler sa propriété "ScrollBars" à 1, 2 ou 3.

    Hervé.

  3. #3
    Membre confirmé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Points : 520
    Points
    520
    Par défaut
    bonjour Theze

    merci de ta réponse mais en fait c'est sur la feuille que je voudrais que cela se passe car la ligne de code de plus haut formate la ligne de D a H pour que le textbox écrive ses données
    le textbox a sa propriété "MultiLine" à True , le texte quelle recois fait 2 voire 3 lignes comment faire pour mettre le texte du textbox sur 2 ou plus de ligne quand "D" à "H" est rempli sur la feuille.
    voila ce que je peux dire de plus

    cordialement

    Pascal

  4. #4
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour Pascal,

    En retard mais pas là hier.

    En fait, si tu fais pareil dans une cellule (mon exemple avec vbCrLf) tu obtiens ton texte sur plusieurs lignes dans la même cellule. Utilise autant de "vbCrLf" que de lignes voulues :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [A1] = "Ma première ligne" & vbCrLf & "ma seconde ligne" & vbCrLf & "ma troisième ligne" & vbCrLf & "ma quatrième ligne" 'etc...
    Hervé.

  5. #5
    Membre confirmé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Points : 520
    Points
    520
    Par défaut
    bonjour Hervé

    ne serait'il pas possible que ce soit lors de l'envoi des données venant du textbox que cela peut se faire, je sais qu'excel vba n'est pas magicien mais y a t'il une solution
    en fait lors de la validation du textbox par l'appui sur le bouton ok l'inscription se fait en ligne formatée automatiquement mais il faudrai je pense que les lignes suivantes soit également formaté automatiquement pour que le textbox développe ses données.
    cordialement

    Pascal

  6. #6
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonsoir,
    Je pense que ce code devrait suffire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
       Range("D" & lig, "H" & lig).MergeCells = True
       Range("D" & lig,"H" & lig).WrapText = True

    PS : je viens de controler, la hauteur de ligne ne s'adapte pas automatiquement mais la mise à la ligne se fait
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  7. #7
    Membre confirmé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Points : 520
    Points
    520
    Par défaut
    bonsoir casefayere

    en effet la largeur ne s'adapte pas mais tout de même c'est déjà un bon début

    Merci beaucoup

    Pascal

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    et le chr10 tout simplement, il fait pas l'affaire ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Sub test()
    Cells(1, 1) = "ligne1" & Chr(10) & "ligne 2"
    End Sub

  9. #9
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonsoir le forum, Hervé, alsimbad, grisan29,
    et le chr10 tout simplement, il fait pas l'affaire ?
    Hervè l'a proposé avec vbctrl, j'ai personnellement essayé avec cette solution dont le chr(10) intégré au textbox qui doit être copié, avec la propriété multiline, la copie s'est faite correctement dans la cellule mais la hauteur ne s'est pas rectifiée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  10. #10
    Membre confirmé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Points : 520
    Points
    520
    Par défaut
    bonjour a vous

    merci de vos réponses
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    .Range("D" & lig, "H" & lig).MergeCells = True
        .Range("D" & lig, "H" & lig).WrapText = True
        .Range("D" & lig, "H" & lig).RowHeight = 64.5 par exemple si 3 lignes a écrire
    la hauteur
    RowHeight = 64.5
    est un code qui me mets toutes les lignes a 64.5 de hauteur (pas tout le temps même hauteur)
    hors je voudrais que ce soit juste quand le contenu du textbox "déborde" apres que la hauteur de ligne s'effectue

    merci par avance

    Pascal

  11. #11
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour à tou(te)s, Grisan29

    Ton fichier Zip est impossible à ouvrir
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  12. #12
    Membre confirmé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Points : 520
    Points
    520
    Par défaut
    bonjour casefayere

    je te l'envoi non zippé

    cordialement

    Pascal

  13. #13
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    En cherchant un peu, j'ai adapté ce code, basé sur ton exemple :
    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
    28
    29
    Private Sub CommandButton1_Click()
    Dim lig As Integer
    Dim LargeurCol As Single, MaHauteur As Single, Lg_Origine As Single
    'calcul de la valeur de la variable lig
    With Sheets("feuil3")
       lig = .Range("B65536").End(xlUp)(2).Row
       If lig < 9 Then lig = 9
       'insertion d'une ligne
       .Rows(lig + 1).Insert
       If Not Me.TextBox1 = "" Then
          .Rows(lig) = ""
          .Range("C" & lig) = TextBox1.Value
          Lg_Origine = .Columns(3).ColumnWidth
          LargeurCol = .Columns(3).ColumnWidth + .Columns(4).ColumnWidth + .Columns(5).ColumnWidth + .Columns(6).ColumnWidth + _
             .Columns(7).ColumnWidth + .Columns(8).ColumnWidth
          .Columns(3).ColumnWidth = LargeurCol
          With .Range("C" & lig, "H" & lig)
             .MergeCells = False
             .WrapText = True 'retour du texte à la ligne
             .EntireRow.AutoFit 'mettre la ligne en ajustement auto de la hauteur
             MaHauteur = .RowHeight 'voir quelle est la hauteur de la ligne une fois cet autofit fait
             .MergeCells = True 'refusionner
             .RowHeight = IIf(MaHauteur > 15, MaHauteur, 15) 'si la hauteur une fois autofit fait est inferieur à 15 je laisse 15 en minimum sinon hauteur de l'autofit (perso c'est la hauteur mini que je voulais
          End With
       End If
       .Columns(3).ColumnWidth = Lg_Origine
    End With
    Unload Me
    End Sub
    dis-moi si ça va
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  14. #14
    Membre confirmé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Points : 520
    Points
    520
    Par défaut
    bonjour casefayere

    un tres grand MERCI
    sur le fichier que j'ai joint c'est nickel, il me reste a l'adapter a mon fichier final mais ce week end j'aurais plus de temps que cet après midi
    je te tiens au courant mais je clos quand même

    encore merci
    et aussi a tous les acteurs du forum

    cordialement

    Pascal

  15. #15
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    J'ai changé légèrement, essayes comme ça :
    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
    28
    29
    30
    Private Sub CommandButton1_Click()
    Dim lig As Integer
    Dim LargeurCol As Single, MaHauteur As Single, Lg_Origine As Single
    'calcul de la valeur de la variable lig
    With Sheets("feuil3")
       lig = .Range("B65536").End(xlUp)(2).Row
       If lig < 9 Then lig = 9
       'insertion d'une ligne
       .Rows(lig + 1).Insert
       If Not Me.TextBox1 = "" Then
          .Rows(lig) = ""
          Lg_Origine = .Columns("c:c").ColumnWidth
          LargeurCol = .Columns(3).ColumnWidth + .Columns(4).ColumnWidth + .Columns(5).ColumnWidth + .Columns(6).ColumnWidth + _
             .Columns(7).ColumnWidth + .Columns(8).ColumnWidth
          .Columns(3).ColumnWidth = LargeurCol
          .Range("C" & lig) = TextBox1.Value
          With .Range("C" & lig, "H" & lig)
             .MergeCells = False
             .WrapText = True 'retour du texte à la ligne
             .EntireRow.AutoFit 'mettre la ligne en ajustement auto de la hauteur
             MaHauteur = .RowHeight 'hauteur de la ligne une fois cet autofit fait
             .MergeCells = True 'refusionner
             .RowHeight = IIf(MaHauteur > 15, MaHauteur, 15) 'si la hauteur une fois autofit fait est inferieur à 15 je laisse 15 en minimum sinon hauteur de l'autofit (perso c'est la hauteur mini que je voulais
             .VerticalAlignment = xlTop
             Sheets("feuil3").Columns("C:C").ColumnWidth = Lg_Origine
          End With
       End If
    End With
    Unload Me
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  16. #16
    Membre confirmé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Points : 520
    Points
    520
    Par défaut
    bonjour casefayere

    je voudrais te dire que mon fichier est disponible a la discussion que j'ai lancer au sujet
    erreur d'exécution '381'
    mais je te joint celui sur lequel j'ai adapter ton code
    ma demande concerne ce fichier
    a l'usf frmMatériel
    quand l'optionbutton"prestations " est cliqué il y a la lstDescription de gauche qui se rempli et le clic sur la donnée "cuisine" développe en lstArticle le contenu de "cuisine"qui parfois est sur 1,2,3 et plus de lignes et qu'il faut les transcrire sur la feuille "facturation"
    J'ai essayer d'adapter ton code mais ce sont toutes les lignes qui se mettent a la même largeur

    cordialement

    Pascal

  17. #17
    Membre confirmé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Points : 520
    Points
    520
    Par défaut
    bonjour casefayere

    un tres grand mercij'ai réussi a adapter ton code en modifiant et rajoutant 2 lignes de codes

    Merci beaucoup de ton aide

    cordialement

    Pascal

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

Discussions similaires

  1. [PHP 5.3] Je perd une ligne lors de l'écriture
    Par Yakuzan dans le forum Langage
    Réponses: 2
    Dernier message: 29/11/2009, 04h27
  2. Réponses: 3
    Dernier message: 14/10/2009, 11h55
  3. Réponses: 2
    Dernier message: 28/07/2009, 17h32
  4. Comment sauter une ligne lors de l'ecriture dans un fichier
    Par Harald dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 29/05/2009, 18h01
  5. Passer à la ligne lors de l'écriture dans un fichier
    Par hams dans le forum Assembleur
    Réponses: 4
    Dernier message: 17/04/2005, 19h25

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