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 :

Modification de code [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Homme Profil pro
    retraite
    Inscrit en
    Avril 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Espagne

    Informations professionnelles :
    Activité : retraite
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2010
    Messages : 325
    Par défaut Modification de code
    Bonsoir
    j'aimerais savoir comment mettre les infos que je rentre d'apres mon userform non a la suite en fin de ligne, mais en debut de ligne, qui demarre toujours en C...
    merci
    cris

  2. #2
    Expert confirmé
    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
    Par défaut
    Bonsoir Cris,

    Exemple en C1. La cellule insérée remplace la cellule citée donc, la valeur en C1 passe en C2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Sub Inserer()
     
        [C1].Insert xlDown
        [C1] = "Valeur de mon formulaire"
     
    End Sub
    Hervé.

  3. #3
    Membre éclairé
    Homme Profil pro
    retraite
    Inscrit en
    Avril 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Espagne

    Informations professionnelles :
    Activité : retraite
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2010
    Messages : 325
    Par défaut
    excuse moir herve je n'est meme pas mis mon code qui pourrais mieus explicite mon post.

    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
    Private Sub CommandButton2_Click()
    Dim WsS As Worksheet
    Dim MaRech As Range, MaPlage As Range
    Dim DerLigS As Long, DerCol As Long
     
    Set WsS = Sheets("Data")
    DerLigS = WsS.Cells(Columns(1).Cells.Count, 1).End(xlUp).Row
    Set MaPlage = WsS.Range(WsS.Cells(1, 1), WsS.Cells(DerLigS, 1))
    Set MaRech = MaPlage.Find(consultant.CB_numero, LookIn:=xlValues)
    DerCol = WsS.Cells(MaRech.Row, WsS.Rows(MaRech.Row).Cells.Count).End(xlToLeft).Column '
     
    WsS.Cells(MaRech.Row, DerCol + 1) = CDate(DTPicker1) & " à " & consultant.TextBox1.Value & _
                                            Chr(10) & consultant.ComboBox1.Value
    TextBox1.Value = ""
    ComboBox1.Value = ""
     
    End Sub
    cris

  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
    Bonsoir
    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
    Private Sub CommandButton2_Click()
    Dim MaRech As Range
    Dim DerLigS As Long
     
    If Me.CB_numero.Value <> "" Then
        With Sheets("Data")
            DerLigS = .Cells(.Rows.Count, 1).End(xlUp).Row
            Set MaRech = .Range("A1:A" & DerLigS).Find(Me.CB_numero.Value, LookIn:=xlValues, lookat:=xlWhole)
            If Not MaRech Is Nothing Then
                .Range("C" & MaRech.Row).Value = CDate(DTPicker1.Value) & " à " & Me.TextBox1.Value & Chr(10) & Me.ComboBox1.Value
                Set MaRech = Nothing
            End If
        End With
        Me.TextBox1.Value = ""
        Me.ComboBox1.Value = ""
    End If
    End Sub

  5. #5
    Membre éclairé
    Homme Profil pro
    retraite
    Inscrit en
    Avril 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Espagne

    Informations professionnelles :
    Activité : retraite
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2010
    Messages : 325
    Par défaut
    merci pour ta reponse mercatog
    les donnees s'inscrive bien dans la bonne cellules, mais des que je veux en creer d'atres donnees elles ecrases celle deja dans cette cellule, je souhaiterais des les donnees se decale sur la ligne dans la celulles suivantes.
    merci
    cris

  6. #6
    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
    Attends quand même, On doit faire une petite analyse du code
    Tu as Une combobox nommée CB_numero
    Tu cherche sur la colonne A de la feuille Data, la valeur sélectionnée dans CB_numero.
    Quand tu trouve cette donnée sur la colonne A, tu écris sur la cellule de la colonne C sur la même ligne la date est autre chose.
    C'est ça?
    J'ai fais l'analyse du code précédent.
    Maintenant, quelle était la question?

  7. #7
    Membre éclairé
    Homme Profil pro
    retraite
    Inscrit en
    Avril 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Espagne

    Informations professionnelles :
    Activité : retraite
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2010
    Messages : 325
    Par défaut
    tres bonne analyse.
    je mets une date ainsi que du texte dans la cellule C, jusqu'ici normal, mais quand je choisis la meme valeur dans la colonne A, je souhaiterais que mes nouvelles donnees se mettent en C, et decale les anciennes donnees en D..
    cris

  8. #8
    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
    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
    Private Sub CommandButton2_Click()
    Dim DerLigS As Long, Lig As Long
    Dim MaRech As Range
     
    If Me.CB_numero.Value <> "" Then
        With Sheets("Data")
            DerLigS = .Cells(.Rows.Count, 1).End(xlUp).Row
            Set MaRech = .Range("A1:A" & DerLigS).Find(Me.CB_numero.Value, LookIn:=xlValues, LookAt:=xlWhole)
            If Not MaRech Is Nothing Then
                Lig = MaRech.Row
                .Range("C" & Lig).Insert xlShiftToRight
                .Range("C" & Lig).Value = CDate(DTPicker1.Value) & " à " & Me.TextBox1.Value & Chr(10) & Me.ComboBox1.Value
                Set MaRech = Nothing
            End If
        End With
        Me.TextBox1.Value = ""
        Me.ComboBox1.Value = ""
    End If
    End Sub

  9. #9
    Membre éclairé
    Homme Profil pro
    retraite
    Inscrit en
    Avril 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Espagne

    Informations professionnelles :
    Activité : retraite
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2010
    Messages : 325
    Par défaut
    tu fonctionne nickel.
    merci mercatog
    cris.

    si je peux te poser une autre question, a moins qu'il faut que je post un autre.

    j'ai dans la cellule B de chaque ligne cette formule:
    =NBVAL(C11:O11)
    mais avec le nouveau code chaque fois que les donnees sont dans la cellule C, la formule se decale de passe A D1111
    peux t'on fixer cette formule a C11:O11
    merci
    cris

  10. #10
    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
    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
    Private Sub CommandButton2_Click()
    Dim DerLigS As Long
    Dim MaRech As Range, CelFin As Range
     
    If Me.CB_numero.Value <> "" Then
        With Sheets("Data")
            DerLigS = .Cells(.Rows.Count, 1).End(xlUp).Row
            Set MaRech = .Range("A1:A" & DerLigS).Find(Me.CB_numero.Value, LookIn:=xlValues, LookAt:=xlWhole)
            If Not MaRech Is Nothing Then
                'On décale les cellules à partir de C vers la droite
                .Range("C" & MaRech.Row).Insert xlShiftToRight
                'La dernière cellule de la ligne MaRech.Row
                Set CelFin = .Cells(MaRech.Row, .Columns.Count).End(xlToLeft)
                'En B on insère la formule
                .Range("B" & MaRech.Row).Formula = "=CountA(C" & MaRech.Row & ":" & CelFin.Address(0, 0) & ")"
                Set CelFin = Nothing
                'On écrit en C notre texte
                .Range("C" & MaRech.Row).Value = CDate(DTPicker1.Value) & " à " & Me.TextBox1.Value & Chr(10) & Me.ComboBox1.Value
                Set MaRech = Nothing
            End If
        End With
        Me.TextBox1.Value = ""
        Me.ComboBox1.Value = ""
    End If
    End Sub

  11. #11
    Membre éclairé
    Homme Profil pro
    retraite
    Inscrit en
    Avril 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Espagne

    Informations professionnelles :
    Activité : retraite
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2010
    Messages : 325
    Par défaut
    bonjour et merci mercatog
    tout le code fonctionne, mais je ne peus pu appliquez ma mise en forme ci dessous:
    comment je peux dire cellule active et appliquez la mise en forme

    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
     Range("C" & Lig).Select
        With Selection.Font
            .Name = "Arial"
        End With
        With Selection.Font
            .Size = 8
        End With
        With Selection.Borders(xlEdgeLeft)
            .LineStyle = xlContinuous
          End With
        With Selection.Borders(xlEdgeTop)
            .LineStyle = xlContinuous
        End With
        With Selection.Borders(xlEdgeBottom)
            .LineStyle = xlContinuous
        End With
        With Selection.Borders(xlEdgeRight)
            .LineStyle = xlContinuous
        End With
        Selection.Borders(xlInsideVertical).LineStyle = xlNone
        Selection.Borders(xlInsideHorizontal).LineStyle = xlNone

    merci
    cris

  12. #12
    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,
    Quand tu auras le réflexe d'éviter les Select, tu auras franchi un pallier énorme.
    En plus, si tu décale la cellule C vers la droite, la cellule C garde la même mise en forme que la cellule initiale qui a été décalée.

    Sinon, pour la mise en forme, tu pourras faire comme ceci:
    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 CommandButton2_Click()
    Dim DerLigS As Long
    Dim MaRech As Range, CelFin As Range
     
    If Me.CB_numero.Value <> "" Then
        With Sheets("Data")
            DerLigS = .Cells(.Rows.Count, 1).End(xlUp).Row
            Set MaRech = .Range("A1:A" & DerLigS).Find(Me.CB_numero.Value, LookIn:=xlValues, LookAt:=xlWhole)
            If Not MaRech Is Nothing Then
                'On décale les cellules à partir de C vers la droite
                .Range("C" & MaRech.Row).Insert xlShiftToRight
                'La dernière cellule de la ligne MaRech.Row
                Set CelFin = .Cells(MaRech.Row, .Columns.Count).End(xlToLeft)
                'En B on insère la formule
                .Range("B" & MaRech.Row).Formula = "=CountA(C" & MaRech.Row & ":" & CelFin.Address(0, 0) & ")"
                Set CelFin = Nothing
                'On écrit en C notre texte et on applique la mise en forme
                With .Range("C" & MaRech.Row)
                    .Value = CDate(DTPicker1.Value) & " à " & Me.TextBox1.Value & Chr(10) & Me.ComboBox1.Value
                    .Font.Name = "Arial"
                    .Font.Size = 8
                    .Borders.LineStyle = xlContinuous
                End With
                Set MaRech = Nothing
            End If
        End With
        Me.TextBox1.Value = ""
        Me.ComboBox1.Value = ""
    End If
    End Sub

  13. #13
    Membre éclairé
    Homme Profil pro
    retraite
    Inscrit en
    Avril 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Espagne

    Informations professionnelles :
    Activité : retraite
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2010
    Messages : 325
    Par défaut
    merci mercatog
    toutes tes reponses sont exactes, ainsi que pour mes select.
    j'ai utiliser je pense trop souvent excel avec le mode creation macros, depuis excel 5.
    je vais m'appliquer a ne plus utiliser les select en autres.
    merci encore
    cris

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

Discussions similaires

  1. modification dynamique code html
    Par xtendance dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 10/10/2006, 12h09
  2. Réponses: 4
    Dernier message: 29/09/2006, 17h38
  3. Réponses: 1
    Dernier message: 03/05/2006, 11h17
  4. [Couleur] Modification du code couleur de l'interface
    Par Therich dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 31/01/2006, 21h00
  5. Modification de code
    Par HADES62 dans le forum Autres langages
    Réponses: 5
    Dernier message: 25/01/2006, 12h42

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