Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 If ActiveCell = "Contenu d'une TextBox" Then

THOR57

XLDnaute Nouveau
Bonjour tous le monde,

J'ai un petit soucis, sans doute ridicule mais vraiment je bloque,

je m'explique, j'ai un code :

VB:
    Sheets("TRAVAUX").Activate

        Range("L1").Select
    
            Do While ActiveCell <> ""
    
            If ActiveCell = "Ville" Then
                ActiveCell.Offset(0, 17).Value = ComboBox1
            End If
                ActiveCell.Offset(1, 0).Select
                
                counter = counter + 1
            Loop

qui fonctionne, par contre je voudrais modifier "If ActiveCell = "Ville" Then" par "If ActiveCell = "(Me.TextBox1.Value)" Then" et la plus rien ne va ^^

VB:
    Sheets("TRAVAUX").Activate

        Range("L1").Select
    
            Do While ActiveCell <> ""
    
            If ActiveCell = "(Me.TextBox1.Value)" Then
                ActiveCell.Offset(0, 17).Value = ComboBox1
            End If
                ActiveCell.Offset(1, 0).Select
                
                counter = counter + 1
            Loop

Si quelqu'un pouvait m'aide, se serait vraiment super sympa

Merci d'avance,

Cordialement,
 

ChTi160

XLDnaute Barbatruc
Re
Une autre approche pour éviter les Select
Et autres Activate (non testé depuis mon téléphone).
Code:
With Sheets("TRAVAUX")
Derlgn=.Cells(.Rows.Count,12).End(xlUp).Row
 For Lgn =1 To Derlgn
  If .Cells(Lgn,12) <> "" And Cells(Lgn.12)= Me.TextBox1.Value Then
 .Cells(Lgn ,17)=Me.ComboBox1.Value
      counter = counter + 1
End If
Next Lgn
End With
Édit : J'avais oublié la variable Counter!
Bonne journée
Jean marie
 

THOR57

XLDnaute Nouveau
Re,

Merci pour vos réponse ultra rapide,

J'avais déjà pensé à enlevez les " " et ( )
VB:
Me.TextBox1.Value
(Me.TextBox1.Value)
"(Me.TextBox1.Value)""
Mais cela ne fonctionne pas non plus,
Aprés j'ai oublier de précisé et je ne sait pas si cela change quelque chose mais Me.TextBox1.Value renvoi un chiffre de 0 à 1000 et non plus du texte,

Le Code complet :

Code:
Private Sub CommandButton1_Click()

    If MsgBox("Etes-vous sûr de vouloir sauvegarder ?", vbYesNoCancel + vbQuestion + vbDefaultButton1, "Sauvegarde") = vbYes Then

    Dim counter As Integer
    counter = 0

    Sheets("TRAVAUX").Activate

        Range("L1").Select
    
            Do While ActiveCell <> ""
    
            If ActiveCell = Me.TextBox1.Value Then
                ActiveCell.Offset(0, 17).Value = ComboBox1
            End If
                ActiveCell.Offset(1, 0).Select
                
                counter = counter + 1
            Loop
    
    MsgBox (counter & " Lignes ont été vérifiées"), vbOKOnly + vbInformation
    
    MsgBox "Le contenu a été Sauvegarder !", vbOKOnly + vbInformation
    
    End If

End Sub
 

TooFatBoy

XLDnaute Barbatruc
Bonjour,

1- Es-tu sûr que le Me est correcte ?

2- As-tu vu le message #4 ?

3- Ton counter me semble erroné.
[edit] Au temps pour moi : ton indentation farfelue m'a quelque peu perturbé... [/edit]
 
Dernière édition:

THOR57

XLDnaute Nouveau
Bonjour ChTi160,

J'ai tester avec ton code mais il me renvoi "0 Lignes ont été vérifiées"
 

THOR57

XLDnaute Nouveau
Bonjour,

1- Es-tu sûr que le Me est correcte ?

2- As-tu vu le message #4 ?

3- Ton counter me semble erroné.
[edit] Au temps pour moi : ton indentation farfelue m'a quelque peu perturbé... [/edit]
La TextBox1 se trouve dans le meme UserForm que le bouton qui enclenche la procédure donc je pense que le Me est correcte meme si il me semble qu'il n'est pas obligatoire,

Apres si je remplace :
VB:
If ActiveCell = Me.TextBox1.Value Then
Par :
Code:
If ActiveCell = "86" Then
par exemple le tous fonctienne super bien mais si je mais le 86 dans la textbox1 il fait toute la procédure mais ne me trouve plus les ligne correspondante ^^
 

THOR57

XLDnaute Nouveau
Donc c'est peut-être bien ça le problème.
C'est se que je pense également, mais
As-tu essayé avec un truc du genre cdec(me.textbox1.value) ?
Tu es un génie, j'avais essayer plus tôt dans le code avec :
VB:
CDbl(me.textbox1.value)
Et sa n'avais pas marcher mais j'ai modifier le code par la suite et je n'ai pas pensé a y revenir ^^
Un grand, Trés Grand Merci à toi !

Les 2 fonctionnent :
Code:
[CODE=vb]CDbl(me.textbox1.value)

VB:
cdec(me.textbox1.value)
[/CODE]

Merci, Merci, Merci ^^
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…