XL 2019 Problème de remplissage cellule en vba

  • Initiateur de la discussion Initiateur de la discussion snoopy07
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

snoopy07

XLDnaute Occasionnel
Bonjour le forum

Apres plusieur recheche j ai trouver le code suivant

VB:
Private Sub CommandButton1_Click()

      With XXXX
          For i = 2 To .Cells(2, Columns.Count).End(xlToLeft).Column
              If CStr(.Cells(2, i)) = ComboBox1.Value Then
                 .Cells(2, i).Select
                 Exit For
              End If
              Next i
              If ActiveCell = ComboBox1.Value Then
              
                 ActiveCell.Offset(1, 0).Value = Format(TextBox1, "MM/DD/YYYY")
          End If
      End With
      RAZ
End Sub

il fonctionne mais il y a un petit problème
c est qu il me remplie toujours la première cellule de la colonne a remplie il ne va pas me chercher la dernière cellule vide a remplir

je pense qu il me manque un petit bout de code entre

If ActiveCell = ComboBox1.Value Then

ActiveCell.Offset(1, 0).Value = Format(TextBox1, "MM/DD/YYYY")
j ai la fin du code mais je n arrive pas a trouver le debut
pour moi la fin du devrait etre .End(xlUp).Row + 1

pouvez vous me dire comment trouver le debut de ce code
cordialement
Snoopy 07
 

Pièces jointes

Bonjour, le code fourni fait bien ce pour quoi il a été conçu :
Il parcourt les colonnes de la ligne 2 à la recherche de la valeur de la combobox et quand il la trouve, il met dans la cellule juste en dessous la valeur de la textbox .
Le code peut être simplifié et mieux sécurisé car il a une faille .
Mais je ne pense pas que ce soit ce que vous voulez, si vous pouviez développer votre besoin ?
 
Bonjour fanch55
ma demande est de pouvoir remplir la dernière cellule vide de la colonne sectionner par la combobox
par contre pour si on peut simplifier le code je serai d accord pour ton aide car j ai pris plusieurs modèle de code et j ai essaie d en faire un qui fonctionne
peut tu m expliquer la faille du code que j ai mis en place
cordialement
Snoopy 07
 
La faille c'est les lignes ci-dessous :

VB:
            Next i
            If ActiveCell = ComboBox1.Value Then
               ActiveCell.Offset(1, x).Value = Format(TextBox1, "MM/DD/YYYY")
            End If
Si on n'a pas trouvé la cellule cherchée et qu'on a sélectionné au préalable une cellule hors de la ligne 2 ( et que par malchance, elle a la même valeur que la combobox ), celle immédiatement en dessous aura la valeur du textbox , ce n'est pas ce qui avait été initialement prévu ...

Si je comprend bien ta demande, ce n'est donc pas la cellule immédiatement en dessous de la cellule trouvée qui aura la valeur de la textbox, mais la dernière cellule vide de la colonne de la cellule trouvée .
 
Dernière édition:
Le code ci-dessous devrait faire ce que tu demandes :
VB:
Option Compare Text
Private Sub CommandButton1_Click()
Dim Colonne As Range
    With Sheets("XXXX")
        Set Colonne = .Rows(2).Find(ComboBox1.Value, searchorder:=xlByColumns)
        If Not Colonne Is Nothing Then
            .Cells(.Rows.Count, Colonne.Column).End(xlUp).Offset(1) = Format(TextBox1, "MM/DD/YYYY")
        End If
    End With
    RAZ
End Sub
 
Notre forum d’entraide est 100 % gratuit et le restera.
Aucune formation payante, aucun fichier à acheter, rien à vendre. Mais comme tout site, nous devons couvrir nos frais pour continuer à vous accompagner.
Soutenez-nous en souscrivant à un compte membre : c’est rapide, vous choisissez simplement votre niveau de soutien et le tour est joué.

Je soutiens la communauté et j’accède à mon compte membre

Discussions similaires

Réponses
2
Affichages
361
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
473
Réponses
3
Affichages
563
Retour