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,
 

THOR57

XLDnaute Nouveau
N'hésite pas à te baser sur le message #4 qui te conseille, fort justement, d'abandonner les Select. Ca te fera gagner beaucoup de temps d'exécution. ;)
J'ai tester mais sa me test 0 Ligne

VB:
With Sheets("TRAVAUX")
Derlgn=.Cells(.Rows.Count,12).End(xlUp).Row
 For Lgn =1 To Derlgn
  If .Cells(Lgn,12) <> "" And Cells(Lgn,12)= Val(Me.TextBox1.Value) Then
 .Cells(Lgn ,17)=Me.ComboBox1.Value
      counter = counter + 1
End If
Next Lgn
End With
 

TooFatBoy

XLDnaute Barbatruc
Je n'ai pas regardé le code, mais l'idée de ne plus utiliser les Select est la bonne, ça c'est sûr. ;)


Il me semble qu'il manque un point devant un Cells.
Peut-être n'est-il pas indispensable selon la feuille active, mais il me semble mieux de le mettre.
 

THOR57

XLDnaute Nouveau
Je n'ai pas regardé le code, mais l'idée de ne plus utiliser les Select est la bonne, ça c'est sûr. ;)


Il me semble qu'il manque un point devant un Cells.
Peut-être n'est-il pas indispensable selon la feuille active, mais il me semble mieux de le mettre.
Par contre, Tous fonctionne nickel sauf quand je rencontre une cellule contenant #N/A

VB:
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 = Val(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
Par contre, Tous fonctionne nickel sauf quand je rencontre une cellule contenant #N/A
Déjà, il ne me semble pas normal qu'il ait des #N/A dans une feuille.

Ensuite, as-tu essayé de traiter le cas des erreurs avec un truc genre
Code:
If Not IsError(ActiveCell.Value) Then


Comme je disais plus haut, on n'y voit pas grand chose avec cette indentation farfelue. ;)
Ca devrait être mieux ainsi :
VB:
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 = Val(Me.TextBox1.Value) Then ActiveCell.Offset(0, 17).Value = ComboBox1
           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
 

THOR57

XLDnaute Nouveau
Déjà, il ne me semble pas normal qu'il ait des #N/A dans une feuille.

Ensuite, as-tu essayé de traiter le cas des erreurs avec un truc genre
Code:
If Not IsError(ActiveCell.Value) Then


Comme je disais plus haut, on n'y voit pas grand chose avec cette indentation farfelue. ;)
Ca devrait être mieux ainsi :
VB:
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 = Val(Me.TextBox1.Value) Then ActiveCell.Offset(0, 17).Value = ComboBox1
           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
C'est effectivement un peu plus propre :)

Pour les #N/A ce ne sont pas des erreur de fonction c'est moi qui les avait mi sur les cellule non renseigner ^^ du coup j'ai modifier par des 0 :) c'est beaucoup mieux ^^

Merci encore pour tous :cool:
 

Statistiques des forums

Discussions
312 209
Messages
2 086 275
Membres
103 170
dernier inscrit
HASSEN@45