Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/10/2011, 11h43   #1
Candidat au titre de Membre du Club
 
Inscription : octobre 2006
Messages : 33
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 33
Points : 10
Points : 10
Par défaut boucle et enregistrement des textbox dans cellules

Bonjour tout le monde,

Petit souci de code avec excel.
Voila le topo : dans une combobox, on choisit un code, puis dans un userform les textbox en placent reprennent les valeurs d'une base excel. Jusque là tout va bien puisque vous m'avez beaucoup aidé (création d'un boucle).

Mais je voudrais ensuite parvenir à réaliser une mise à jour de certaines textbox et créer un bouton "enregistrer".

C'est là que tout se complique pour moi. Quel est ce code pour que les nouvelles valeurs aillent correctement s'enregistrer dans les cellules correspondantes à la cellule ? Il faut une boucle, c'est certain, mais je bloque.

Voici le code que j'utilise déjà pour afficher les valeurs correspondantes à une combobox.

Merci de votre aide.


Code :
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
31
32
33
34
35
36
37
38
39
Private Sub CommandButton1_Click()
 
Dim C As Range
Dim Code As String
 
'Code: le contenu de TextBox1 qu'on va chercher sur la colonne A
Code = RechercheMAJ.ComboBox1.Value
'Si Code est non vide
If Code <> "" Then
'F1 sur la méthode Find (on cherche la valeur de Code dans la colonne A de notre feuille)
'c est la cellule de la colonne A contenant éventuellement la valeur du Code
    Set C = Worksheets("bdouvrages").Range("A:A").Find(Code, LookIn:=xlValues, lookat:=xlWhole)
    'Si une cellule est trouvé (contenant la valeur de Code) c sera différente de rien
    If Not C Is Nothing Then
        'On appelle la procédure de remplissage Remp des TextBox de Fiche en fonction de la ligne de la cellule trouvé (c.Row)
        Call Report(C.Row)
        'On vide notre variable objet (Range) c
        Set C = Nothing
    End If
End If
End Sub
 
'Procédure de remplissage des TextBox de Fiche en fonction de (Lig)ne
Private Sub Report(ByVal Lig As Long)
Dim I As Byte
 
With Worksheets("bdouvrages")
    MAJE0.TextBox1.Value = .Cells(Lig, 1).Value
    MAJE0.TextBox2.Value = .Cells(Lig, 2).Value
    'On boucle sur les textbox de 3 à 33
    For I = 3 To 33
        MAJE0.Controls("TextBox" & I).Value = .Cells(Lig, I)
    Next I
 
End With
'pour montrer la fiche
MAJE0.Show
 
End Sub
kaboche est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h29.


 
 
 
 
Partenaires

Hébergement Web