la_bavaroise
Messages postés24Date d'inscriptionmercredi 14 septembre 2005StatutMembreDernière intervention22 novembre 2005
-
14 sept. 2005 à 11:39
la_bavaroise
Messages postés24Date d'inscriptionmercredi 14 septembre 2005StatutMembreDernière intervention22 novembre 2005
-
15 sept. 2005 à 11:57
Bonjour a tous,
voivi ma question: je suis en train de créer une macro pour qu'elle puisse automatiquement me détecter des fautes de données dans une feuille excel qui contient des données importées d´une BDD externe.
j'ai donc créer une variable qui détecte les fautes, mais je n'arrive pas a lui ajouter différentes sortes de fautes.
Je voudrais, par exemple, effacer les cellules qui contiennent soit un? ou une , ou autre chose.
Puis-je faire prendre a ma variable plusieurs valeurs?
Merci d'avance a ceux qui auront compris ma question et qui sauront y repondre.
Si ce n'est pas clair, n'hesitez pas a me le faire savoir, je joindrai mon code... le seul hic, c ke les variables sont en allemand, ms je joindrai la traduc a cote bien evidemment!!! (Jhabite a Munich)
Merci encore
Tuning Max
Messages postés314Date d'inscriptionmercredi 15 juin 2005StatutMembreDernière intervention31 août 20061 15 sept. 2005 à 11:23
fait plusieurs variables et rajoute OR dans ton code pour la recherche
Fehler_Text = "?"
Fehler_Text2 = "!"
For k = 1 To Sheet_Quelle_Ende
Zelleninhalt = Sheets(Sheet_Quelle).Range(Sheet_Quelle_col & k).Value
'maintenant voir, si le contenu de la cellule a une faute
If InStr(Zelleninhalt, Fehler_Text) Or InStr(Zelleninhalt, Fehler_Text2)Then
VBFranceBlub
Messages postés27Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention19 septembre 2005 14 sept. 2005 à 11:50
Salut;
Effectivement, tout ça n'est pas très clair.
D'après ce que j'ai compris, tu veux pouvoir récupérer la valeur d'une cellule de la feuille Excel et la tester pour savoir si elle contient une faute de frappe?
Pour affecter une valeur à une variable:
'Déclaration de la variable en type Variant pour accepter tous les caractères et tous les formats de données
Public MaVariable As Variant
'Affectation de la valeur d'une cellule à ta variable
MaVariable = Cells(CoordonnéeX,CoordonnéeY)
la_bavaroise
Messages postés24Date d'inscriptionmercredi 14 septembre 2005StatutMembreDernière intervention22 novembre 2005 14 sept. 2005 à 16:48
ok en fait tu as bien cerne mon pb, malgre mon langage assez approximatif en effet!!
en fait, le code que tu mas donne ne peut pas fonctionner car je ne sais pas ou seront precisement les fautes, tt dependera a chaque fois de lactualisation des donnees. cest pour cela que je ne peux pas affecter la valeur d'une cellule a ma variable, seulement une colonne (je sais que les noms a chercher st seulement ds la colonne C)
voici mon code:
Option Explicit
Public Sheet_Quelle, Sheet_Quelle_col, Sheet_Quelle_Ende
'(Quelle=source)
Sub Finde_Fehler() '(macro trouver_faute)
'***********************************************************************************
'Variables a declarer
'******************************************************************
Sheet_Quelle = "WWH" 'le nom de ma Worksheet, ou je veux trouver la derniere 'ligne
Sheet_Quelle_col = "C" la colonne de ma Worksheet, ou je veux trouver la 'derniere ligne
Call letzte_zeile_Quelle ' la derniere ligne, qui sera trouve par Public Sub 'letzte_zeile grace a lordre Call
Sheets(Sheet_Quelle).Select
Dim k, Zelleninhalt, Fehler_Text As Variant
Fehler_Text = "?"
For k = 1 To Sheet_Quelle_Ende
Zelleninhalt = Sheets(Sheet_Quelle).Range(Sheet_Quelle_col & k).Value
'maintenant voir, si le contenu de la cellule a une faute
If InStr(Zelleninhalt, Fehler_Text) Then
'la, jutilise la fonction InStr
'si il y a bien une faute, alors
Rows(k).Delete 'Die Zeile löschen, da ein Fehler drin ist
k = k - 1
End If
Next k
End Sub
Public Sub letzte_zeile_Quelle()
Sheets(Sheet_Quelle).Select
Sheet_Quelle_Ende = 0
Sheet_Quelle_Ende = ActiveSheet.Cells(Rows.Count, Sheet_Quelle_col).End(xlUp).Row
End Sub
Voila,
mon seul souci est d'arriver a dire quil peut y avoir differentes fautes (cf en rouge) et en fait donner le choix a cet variable detre soit ? ou, etc...
Bon si tu vois pas ce ke je veux dire, ya pas de souci, te prends pas la tete,
en tt cas, merci qd meme pour ta gentillesse!
Ciao,
la bavaroise
Vous n’avez pas trouvé la réponse que vous recherchez ?
bertholdt
Messages postés22Date d'inscriptionlundi 20 novembre 2000StatutMembreDernière intervention17 mai 2010 15 sept. 2005 à 11:23
Salut
Utilise $ pour remplir une variable avec une valeur String.
Par exemple
cellule$ = Cell(X,Y).Value
Quelle que soit le type de valeur contenu dans les cellules, la valeur sera stockée dans cellule$ au format string (chaîne de caractères).
Ensuite, tu peux utiliser InStr sans problème.
Dans le code que tu as posté, tu écris :
If InStr(Zelleninhalt, Fehler_Text) Then ...
Mais tu ne compares rien !
En fait, il faut écrire
If InStr(1, cellule$, ton paramètre "?", vbTextCompare) <> 0 Then ...
la_bavaroise
Messages postés24Date d'inscriptionmercredi 14 septembre 2005StatutMembreDernière intervention22 novembre 2005 15 sept. 2005 à 11:57
Salut a tous,
merci de mavoir repondu, c genial: ca marche Cap'taine!! Alors encore merci beaucoup, les plus petites difficultes st peut etre les + ennuyantes je crois....
Merci particulierement a Tuning Max et a Berthold pour leur precieux conseils!!!
Bon week-end a vous, je trinquerai à votre santé ce week-end, c'est l'ouverture de l'Oktoberfest (Fete de la biere a Munich)