begin process at 2012 02 17 10:32:20
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

VBA

 > 

VBA variable a chaine de caractere


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

VBA variable a chaine de caractere

mercredi 14 septembre 2005 à 11:39:09 | VBA variable a chaine de caractere

la_bavaroise

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

la bavaroise...
mercredi 14 septembre 2005 à 11:50:24 | Re : VBA variable a chaine de caractere

VBFranceBlub

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)

<-Blub->

mercredi 14 septembre 2005 à 11:57:45 | Re : VBA variable a chaine de caractere

econs

Administrateur CodeS-SourceS


'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)

If Instr(1,MaVariable,"?",vbTextCompare) > 0 Then
    Cells(CoordonneeX,CoordonneeY).FormulaR1C1 = ""
EndIf


If Instr(1,MaVariable,",",vbTextCompare) > 0 Then
    Cells(CoordonneeX,CoordonneeY).FormulaR1C1 = ""
EndIf


Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
mercredi 14 septembre 2005 à 16:48:36 | Re : VBA variable a chaine de caractere

la_bavaroise

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

jeudi 15 septembre 2005 à 11:23:10 | Re : VBA variable a chaine de caractere

Tuning Max

Membre Club
Réponse acceptée !
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

jeudi 15 septembre 2005 à 11:23:19 | Re : VBA variable a chaine de caractere

bertholdt

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 ...

Bon courage

Pierrick
jeudi 15 septembre 2005 à 11:57:05 | Re : VBA variable a chaine de caractere

la_bavaroise

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)

Bonne continuation,

Caroline (alias la_bavaroise)


Cette discussion est classée dans : vba, variable, chaine, caractere, fautes


Répondre à ce message

Sujets en rapport avec ce message

transmettre une chaine de caractere d'un formulaire a un autre en VBA [ par agnescat ] Bonjour, J'ai une chaine de caratere dans un formulaire. Je souhaite remplir le textbox d'un autre formulaire avec cette chaine.Comment faire?Merci. Variable et chaine de caractere [ par moktin ] Bonjour, Voila, je voudrais utilise le contenu d'une variable pour faire appelle a une variable qui a ce nom.Exemple :Dim var as stringDim texte as st recherche d'une chaine de caractere à l'interieur de module VBA [ par Col ] Bonjour, Est-il possible par une macro sous Excel, de rechercher une chaine de caractères à l'interieur d'un projet VBA ? (et si oui, comment ?) Mer récupérer une variable VB sous VBA. [ par Dylanoic ] Bonjour à tous. Voici mon soucis : j'ai un code VB qui contient une variable. Je n'arrive pas à récupérer cette variable via un autre programme que j' vba excel problème de chaine [ par nitho ] bonjour à tous, j'ai un pb sur vba excel 2003, je sais que c'est différent de vb mais je n'ai pas trouvé le bon thème. Le pb est tout simple. j'ai mis VBA et police 128 sous WORD [ par nicus88 ] Bonjour,Je cherche a mettre en œuvre un code barre 128 sur mes documents Word.Je dispose de la police 128 et d'une fonction.Cette fonction prend en en [VBA] Sélectionner plusieurs colonnes par variable chaine [ par Aurelangelo ] Bonjour les internautes,Je rencontre une petite difficulté au niveau de mon script VBA qui a pour but de créer une série de graphiques  en fonction du Deux Strings identique? [ par UltimataL ] Bonsoir, J' aimerais savoir comment faire pour comparer une chaine de caractères variable à une autre défini?? X1 = variable X2 = "ABC" if x1.????( vbs comparaison de chaine de caractere [ par mafip ] Bonjour a tousJ'ai écrit un script qui permet de créer des utilisateur dans active directory a partir d'une liste (fichier.txt). Et maintenant j'aimer affichage de varviable et de chaine de caractere dans une textbox [ par Neotaxi ] Bonjour je viens encore pour un tout petit problème bête comme tout mais où internet ne me donne aucune réponses...  Voilà le problème; j'arrive à met


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,170 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales