Copier valeur textbox [Excel 2007]

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
B
Black Matou
Jeune membre
Jeune membre
Messages : 13
Inscrit le : 26 août 2015
Version d'Excel : 2007 FR

Message par Black Matou » 26 août 2015, 23:07

Bonjour,

Je cherche le code vba qui permet de copier la valeur de la textbox1 dans la colonne "H" à la ligne dont la valeur qui se trouve en colonne "A" est la même que la valeur se trouvant dans la textbox2.

En gros, dans ma colonne "A", chaque ligne correspond à une date (j'ai donc 365 lignes). Je cherche dont à copier la valeur que j'ai entré dans ma textbox1 dans la colonne "H" et à la ligne qui correspond à la date que j'ai entré dans la textbox2.

En espérant avoir été assez clair :?
Avatar du membre
ThauThème
Passionné d'Excel
Passionné d'Excel
Messages : 4'047
Appréciations reçues : 212
Inscrit le : 19 octobre 2014
Version d'Excel : 2010 FR

Message par ThauThème » 27 août 2015, 01:13

Bonsoir Black Matou, bonsoir le forum,

Essaie comme ça :
Private Sub CommandButton1_Click()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim R As Range 'déclare la variable R (Recherche)

Set O = Sheets("Feuil1") 'définit l'onlet O (à adapter)
Set R = O.Columns(1).Find(CDate(Me.TextBox2.Value), , xlValues, xlWhole) 'définit la recherche R
'si il existe au moins une occurrence trouvée, renvoie la valeur de la TextBox1
'dans la cellule ligne : ligne de la première occurrence trouvée, colonne 8 (=H) de l'onglet O
If Not R Is Nothing Then O.Cells(R.Row, 8).Value = Me.TextBox1.Value
End Sub
Attention ! Si la colonne contient plusieurs fois la même date ce code n'est pas fiable, puisque il renverra la valeur de la TextBox1 uniquement dans la première occurrence trouvée...
À plus,

ThauTheme


Je suis Charlie
VBA m'éclate, les formules m'ennuient ! Je n'y peux rien c'est comme ça...
B
Black Matou
Jeune membre
Jeune membre
Messages : 13
Inscrit le : 26 août 2015
Version d'Excel : 2007 FR

Message par Black Matou » 27 août 2015, 17:46

Bonjour ThauThème

Merci pour le code ! J'ai pu l'adapter à toutes les textbox que j'ai en réalité sur mon fichier.

Par contre maintenant je suis bloqué. J'ai plusieurs onglets, comment passer d'un onglet à un autre pour ensuite utiliser le même code ?
Private Sub CommandButton1_Click()

Workbooks.Open "F:\Classeur"

Dim O As Worksheet
Dim R As Range

Set O = Sheets("Feuil1")
Set R = O.Columns(1).Find(CDate(Me.TextBox29.Value), , xlValues, xlWhole)
    If Not R Is Nothing Then O.Cells(R.Row, 8).Value = Me.TextBox1.Value
    If Not R Is Nothing Then O.Cells(R.Row, 9).Value = Me.TextBox2.Value
    If Not R Is Nothing Then O.Cells(R.Row, 11).Value = Me.TextBox3.Value
    If Not R Is Nothing Then O.Cells(R.Row, 12).Value = Me.TextBox4.Value
    If Not R Is Nothing Then O.Cells(R.Row, 14).Value = Me.TextBox5.Value
    If Not R Is Nothing Then O.Cells(R.Row, 16).Value = Me.TextBox6.Value

Set O = Sheets("Feuil2") 'En faisant comme ça ça ne marche pas ??
Set R = O.Columns(1).Find(CDate(Me.TextBox29.Value), , xlValues, xlWhole)
    If Not R Is Nothing Then O.Cells(R.Row, 8).Value = Me.TextBox8.Value
    If Not R Is Nothing Then O.Cells(R.Row, 9).Value = Me.TextBox9.Value
    If Not R Is Nothing Then O.Cells(R.Row, 11).Value = Me.TextBox10.Value
    If Not R Is Nothing Then O.Cells(R.Row, 12).Value = Me.TextBox11.Value
    If Not R Is Nothing Then O.Cells(R.Row, 14).Value = Me.TextBox12.Value
    If Not R Is Nothing Then O.Cells(R.Row, 16).Value = Me.TextBox13.Value

End Sub
Avatar du membre
ThauThème
Passionné d'Excel
Passionné d'Excel
Messages : 4'047
Appréciations reçues : 212
Inscrit le : 19 octobre 2014
Version d'Excel : 2010 FR

Message par ThauThème » 27 août 2015, 19:54

Re,

Y'a pas de raison que ça marche pas si ce n'est qu'il n'y ait pas d'onglet nommé Feuil2... Ou alors il faut dire quelle est la ligne qui plante...
Le même code plus... on va dire, académique :
Private Sub CommandButton1_Click()
Dim O As Worksheet
Dim R As Range

Workbooks.Open "F:\Classeur"
Set O = Sheets("Feuil1")
Set R = O.Columns(1).Find(CDate(Me.TextBox29.Value), , xlValues, xlWhole)
If Not R Is Nothing Then
    O.Cells(R.Row, 8).Value = Me.TextBox1.Value
    O.Cells(R.Row, 9).Value = Me.TextBox2.Value
    O.Cells(R.Row, 11).Value = Me.TextBox3.Value
    O.Cells(R.Row, 12).Value = Me.TextBox4.Value
    O.Cells(R.Row, 14).Value = Me.TextBox5.Value
    O.Cells(R.Row, 16).Value = Me.TextBox6.Value
End If
Set R = Nothing
Set O = Sheets("Feuil2") 'En faisant comme ça ça ne marche pas ??
Set R = O.Columns(1).Find(CDate(Me.TextBox29.Value), , xlValues, xlWhole)
If Not R Is Nothing Then
    O.Cells(R.Row, 8).Value = Me.TextBox8.Value
    O.Cells(R.Row, 9).Value = Me.TextBox9.Value
    O.Cells(R.Row, 11).Value = Me.TextBox10.Value
    O.Cells(R.Row, 12).Value = Me.TextBox11.Value
    O.Cells(R.Row, 14).Value = Me.TextBox12.Value
    O.Cells(R.Row, 16).Value = Me.TextBox13.Value
End If
End Sub
À plus,

ThauTheme


Je suis Charlie
VBA m'éclate, les formules m'ennuient ! Je n'y peux rien c'est comme ça...
B
Black Matou
Jeune membre
Jeune membre
Messages : 13
Inscrit le : 26 août 2015
Version d'Excel : 2007 FR

Message par Black Matou » 27 août 2015, 23:07

C'est bon ça marche !

C'est sûr que ça ne pouvait pas marcher si dans mes dates n'étaient pas configurées en tant que date ^^'
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message