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

Range("C11")=E, Range("E2")=E, mais C11<>E2 !!

  • Initiateur de la discussion Initiateur de la discussion news
  • 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 !

news

XLDnaute Impliqué
Bonjour à tous du forum,

vérification du texte mis dans Inputbox si existe déjà dans ("C2:C")

Quand on met du texte dans inputbox est affiché ce texte dans Range("E2").
En mettant par exemple la lettre "E" dans Inputbox.

Si dans la colonne (C2:C) ne figure pas ce texte,
d'ajouter dans Range("C" & Range("C65536").End(xlUp).Row + 1)
le texte de Range("E2").

J'ai effectué différents test, mais parfois est mis un texte de range("E2"), mais se trouvant déjà sous C2:C.
plus d'explications sous le fichier "data_5" mis lors des réponses de ce fil
Comment résoudre ?

'
 
Dernière édition:
Re : Range("C11")=E, Range("E2")=E, mais C11<>E2 !!

Bonjour

Il me semble un peu compliqué ton code néanmoins si j'ai bien compris
quand tu ecris

For Each cn In Sheets("data").Range("C2:" & Sheets("data").Range("C65536").End(xlUp).Address)
If cn <> Range("E2") Then
ActiveCell.Value = inputbox_adding
Else
inputbox_adding = InputBox("do you want to add that data" + _
"or press 'STOP' or 'Annuler' to finish", "adding new data ")
If UCase(inputbox_adding) = "STOP" Then End
Range("E2").Value = inputbox_adding
ActiveCell.Value = inputbox_adding
End If
Next


il va verifier en premier range("C2") et si range("C2") <> range("E2") il ecrira dans E2

puisque tu testes cette cellule en premier

il faudrait faire une boucle et mettre un booleen à true par exemple si tu trouves ta valeur et après ta boucle si ton booleen est true c'est que valeur trouvée si false valeur non trouvée
 
Re : Range("C11")=E, Range("E2")=E, mais C11<>E2 !!

bonjour

je verrai plutot ca comme ca

Code:
Sub an_inputbox() 
Dim inputbox_adding As String
debut:
inputbox_adding = InputBox("ajouter les données")
If UCase(inputbox_adding) = "STOP" Then exit sub
if application.worksheetfunction.countif(range("C:C"),inputbox_adding)>0 then
    msgbox "Reférence deja existante"
else
    range("C65536").end(xlup).offset(1,0) = inputbox_adding
end if
goto debut
End Sub

oups : bonjour pascal
 
Dernière édition:
Re : Range("C11")=E, Range("E2")=E, mais C11<>E2 !!

Bonjour à tous du forum,

vérification du texte mis dans Inputbox si existe déjà dans ("C2:C")

merci wilfried_42 du code donné,
j'ai mis ce code dans l'exemple du fichier "Data_5", mais la macro tourne au rond, ne s'arrête plus.

J'ai modifié et la macro fonctionne partiellement, comme parfois et mis quand même le texte de Range("E2"), même si existant déjà dans ("C2:C") : 😕

Sub an_inputbox()
debut:
y = Range("E2").Value
c = InputBox("ajouter les données")
Range("E2").Value = c
If WorksheetFunction.CountIf(Range("C:C"), y) = 0 = True Then
Range("C65536").End(xlUp).Offset(1, 0) = Range("E2").Value
Else
MsgBox "Reférence deja existante"
GoTo debut
End If
End Sub


merci PascalXLD des informations d'utiliser une boocle et mettre boolean à True, mais ces codes je ne sais pas trop.

Je remets plus d'explications dans le fichier"data_5"

'
 

Pièces jointes

Dernière édition:
Re : Range("C11")=E, Range("E2")=E, mais C11<>E2 !!

Bonjour à tous du forum,

vérification du texte mis dans Inputbox si existe déjà ou est identique que texte dans ("C2:C")

je remets le fil, comme la macro n'effectue pas encore correctement,

différents tests j'ai fait, modifié le code utilisé, euh ,...
 
Re : Range("C11")=E, Range("E2")=E, mais C11<>E2 !!

Bonjour

voici une macro : je ne vois pas à quoi sert E2, j'ai fait sans, j'en ai profité pour ajouter la crestion de feuille supplémentaire en cas de Produit Ajouté

Code:
Sub an_inputbox()
    Dim c As String
    Dim ws As Worksheet
debut:
    c = InputBox("ajouter les données")
    If c = "" Then Exit Sub
    If UCase(c) = "STOP" Then Exit Sub
    If WorksheetFunction.CountIf(Range("C:C"), c) = 0 Then
        Range("C65536").End(xlUp).Offset(1, 0) = c
        Set ws = Sheets.Add(after:=Sheets(Sheets.Count))
        ws.Name = c
    Else
        MsgBox "Reférence deja existante"
        GoTo debut
    End If

End Sub

un petit bémole, j'espere que tu n'as pas trop de produit, la limite d'excel est de 255 feuilles pour les versions 2003 et précédentes
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…