begin process at 2010 02 10 02:08:44
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Langages dérivés

 > 

VBA

 > 

[Déplacé vb.Net -> VBA] VERIFIER UNE CONDITION SUR 12 FEUILLES AVEC LA MEME COMMANDE


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

[Déplacé vb.Net -> VBA] VERIFIER UNE CONDITION SUR 12 FEUILLES AVEC LA MEME COMMANDE

vendredi 3 juillet 2009 à 18:33:44 | [Déplacé vb.Net -> VBA] VERIFIER UNE CONDITION SUR 12 FEUILLES AVEC LA MEME COMMANDE

NANY1012

Bonjour, J'ai commencé une macro qui me sert de formulaire de saisie,elle fonctionne bien. Mais maintenant je souhaiterai que le programme me dise si une saisie et déjà écrite dans les cellules de destination (12 feuilles au total identique 1 par mois ). Pour la saisie j'utilise la fonction on while et offset. J'essaie de faire la même chose pour la commande de vérification . Voici le code: Dim i As Integer i = 0 Do While Sheets("janvier").Range("B9").Offset(i, 0).Value <> Sheets("Formulaire").Range("B5").Value And i < 65 i = i + 1 Loop If Sheets("janvier").Range("B9").Offset(i, 2).Value <> 1 Then Else i = 0 Do While Sheets("février").Range("B9").Offset(i, 0).Value <> Sheets("Formulaire").Range("B5").Value And i < 65 i = i + 1 Loop If Sheets("février").Range("B9").Offset(i, 2).Value <> 1 Then Dim info1 As Integer info1 = MsgBox("!!!INFO!!! Une saisie sur la même date a déjà été faites,toutes les anciennes données seront effacées!!!INFO!!! ", vbYesNo + vbInformation, "infos") If info1 = 7 Then Exit Sub End If End If J'ai mis le <> 1 mais je ne connais pas le code pour dire que la cellule est vide ,l'idéal serait que la vérification soit sur "offset de (i,2) à (i,22)ce qui correspondant à la ligne de saisie. Le code précedent fonctionne uniquement sur la feuille de janvier mais pas sur celle de février,alors pour la suite... je suis perdu.... Si toutefois quelqu'un peut m'aider un peu ... Merci à tous
samedi 4 juillet 2009 à 03:29:15 | Re : VERIFIER UNE CONDITION SUR 12 FEUILLES AVEC LA MEME COMMANDE

jack

Administrateur CodeS-SourceS
Réponse acceptée !
Salut
Le VB de Excel n'est pas du .Net ---> Catégorie modifiée

Texte illisible, pas le courage de remettre en forme.
Tu peux t'adresser à une feuille de deux manières :
- par son nom, comme tu l'as fait, avec Sheet("Janvier")
- par son numéro, avec Sheet(1), en suppoosant que tu as mis Janvier dans la première Feuille.
A partir de là, il te suffit de faire un niveau de boucle supplémentaire pour remplacer le 1 par un chiffre allant de 1 à 12, etc.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
samedi 4 juillet 2009 à 11:02:10 | Re : [Déplacé vb.Net -> VBA] VERIFIER UNE CONDITION SUR 12 FEUILLES AVEC LA MEME COMMANDE

NANY1012

Bonjour, Merci pour la réponse Jack, je vais essayer de mieux m'expliquer. J'ai remis le code dans un format plus lisible, pour la boucle j'ai essayé mais au dela de 2 feuilles le msg ne s'active pas même si dans les cellules de la feuille de destination il y a des valeur. La démarche est que la cellule B5 de la feuille formulaire est une date . La recherche se fait à partir de la cellule B9 des feuilles et vérifie les dates puis lorsque la date est trouvée ,il faudrait vérifier les cellules de "offset(i,2)à offset(i,22),...mais là cela se corse est le programme fonctionne uniquement sur la feuille "janvier". J'ai un problème avec la boucle Sinon j'ai aussi une question comment dois t on coder pour une la vérification d'une cellule vide dans une feuille (la cellule contient une formule...est la je coince encore...) Je débute vraiment ..... Voici le code mis en forme: Dim i As Integer i = 0 Do While Sheets("janvier").Range("B9").Offset(i, 0).Value <> Sheets("Formulaire").Range("B5").Value And i < 65 i = i + 1 Loop If Sheets("janvier").Range("B9").Offset(i, 2).Value <> 1 Then Else i = 0 Do While Sheets("février").Range("B9").Offset(i, 0).Value <> Sheets("Formulaire").Range("B5").Value And i < 65 i = i + 1 Loop If Sheets("février").Range("B9").Offset(i, 2).Value <> 1 Then Dim info1 As Integer info1 = MsgBox("!!!INFO!!! Une saisie sur la même date a déjà été faites,toutes les anciennes données seront effacées!!!INFO!!! ", vbYesNo + vbInformation, "infos") If info1 = 7 Then Exit Sub End If End If End if En espérant que quelqu'un pourra déchiffrer ce que je veux faire... Merci à tous
samedi 4 juillet 2009 à 11:10:00 | Re : [Déplacé vb.Net -> VBA] VERIFIER UNE CONDITION SUR 12 FEUILLES AVEC LA MEME COMMANDE

NANY1012

RE Je viens de voir que la mise en forme que j'ai saisie dans le formulaire de réponse du site ne s'applique pas , comment faites vous pour faire apparaitre les saut de lignes ,espaces...etc . Mon message arrive tout de rang. Merci à vous
samedi 4 juillet 2009 à 16:58:18 | Re : [Déplacé vb.Net -> VBA] VERIFIER UNE CONDITION SUR 12 FEUILLES AVEC LA MEME COMMANDE

NANY1012

Bonjour à tous et désolé pour la multiplication de ce message.

Ouf enfin je peux transmettre ce message correctement

Merci pour la réponse Jack, je vais essayer de mieux m'expliquer.
 J'ai remis le code dans un format plus lisible, pour la boucle j'ai essayé mais au dela de 2 feuilles le msg ne s'active pas même si dans les cellules de la feuille de destination il y a des valeur.
La démarche est que la cellule B5 de la feuille formulaire est une date .
La recherche se fait à partir de la cellule B9 des feuilles et vérifie les dates puis lorsque la date est trouvée ,il faudrait vérifier les cellules de "offset(i,2)à offset(i,22),...mais là cela se corse est le programme fonctionne uniquement sur la feuille "janvier".
J'ai un problème avec la boucle
Sinon j'ai aussi une question comment dois t on coder pour une la vérification d'une cellule vide dans une feuille (la cellule contient une formule...est la je coince encore...) Je débute vraiment .....
Voici le code mis en forme:

Dim i As Integer
i = 0
    Do While Sheets("janvier").Range("B9").Offset(i, 0).Value <> Sheets("Formulaire").Range("B5").Value And i < 65
       i = i + 1
 Loop   
             If Sheets("janvier").Range("B9").Offset(i, 2).Value <> 1 Then
                Else
 i = 0
    Do While Sheets("février").Range("B9").Offset(i, 0).Value <> Sheets("Formulaire").Range("B5").Value And i < 65 
      i = i + 1 
   Loop 
                  If Sheets("février").Range("B9").Offset(i, 2).Value <> 1 Then

Dim info1 As Integer
 
   info1 = MsgBox("!!!INFO!!! Une saisie sur la même date a déjà été faites,toutes les anciennes données seront effacées!!!INFO!!! ", vbYesNo + vbInformation, "infos") 
                        If info1 = 7 Then
 Exit Sub
          End If
             End If 
               End if
 
En espérant que quelqu'un pourra déchiffrer ce que je veux faire...

Merci à tous
samedi 4 juillet 2009 à 17:36:25 | Re : [Déplacé vb.Net -> VBA] VERIFIER UNE CONDITION SUR 12 FEUILLES AVEC LA MEME COMMANDE

jack

Administrateur CodeS-SourceS
Réponse acceptée !
Re
Tu as une curieuse façon d'indenter ton code.
Non, je ne ferait pas ton code, c'est à toi de reflechir avec les indications que je t'ai données.
Des boucles, tu sembles savoir les faire.
Qu'y a t-il de compliqué à faire une boucle de 1 à 12 ?
Dans ton code, je ne sais pas à quoi tu veux arriver car, après être sorti de tes boucles, tu as une valeur 'i' mais tu n'en fais rien.
Bizarre.
Si tu es sensé retrouver une valeur dans un Range, applique la technique simple :
   Dim bTrouvé As Boolean
   Dim mCellule As Object
   Sheets("Janvier").Select
   bTrouvé = False
   For Each mCellule In Range("B9:B74")
      If mCellule.Value = Sheets("Formulaire")... Then
         bTrouvé = True
         Exit For
      End If
      DoEvents
   Next
   If bTrouvé Then
      MsgBox ...
   End If
Il y a d'autres solutions, comme le Find ...
dimanche 5 juillet 2009 à 13:15:21 | Re : [Déplacé vb.Net -> VBA] VERIFIER UNE CONDITION SUR 12 FEUILLES AVEC LA MEME COMMANDE

NANY1012

Bonjour,

Merci pour la réponse , je ne connaissais pas cette fonction.

Mais pour mon problème tu as raison,je vais essayer la fonction Find, car je dois chercher la valeur de la cellule B5 de ma feuille "Formulaire" dans une de mes 12 autres feuilles dans Range("B9:B74) sans me positionner dessus mais ensuite vérifier si la cellule se trouvant à droite de celle trouvée est vide ou <>1
Alors si <>1 le msgbox s'active.

Si tu peux me montrer un code en Find afin que je puisses comprendre le fonctionnement ou bien m'expliquer le principe de code...
En te remerciant
.
Bonne fin de journée..........






Cette discussion est classée dans : saisie, value, range, offset, sheets


Répondre à ce message

Sujets en rapport avec ce message

macro pb extractions de données en fonction de criteres situés dans 2 colonnes [ par matbrasil ] bonjour, Je ne suis pas un champion en VBA mais je me suis lancé. J ai une base de donnée qui contient les elements suivants colonne B : heure de ne Problème avec une double boucle for..next et deux variables [ par trolllllus ] Bonjour, Novice en programmation, je rencontre un problème dans le code suivant. Je cherche a réaliser la boucle sur i pour chaque valeur de j. Pri Enregistrement dans une feuille excel [ par lilmonie ] Hello, Je souhaiterais modifier mon code pour permettre à l'utilisateur de pouvoir enregistrer les données sachant qu'une ligne de données sélectionn Checkbox générées dynamiquement et événements (click) [ par OCamarade ] Bonjour à tous, Je suis actuellement sur un projet VBA et je suis confronté au problème suivant : je cherche à faire du traitement d'événement sur de [Déplacé VB6 --> VBA] condition pour remplir une colonne avec VBA (urgent) [ par ABMP ] Bonjour, J'ai cherché avant mais je n'ai rien trouvé sur le forum. je voudrais savoir comment poser une condition afin qu'un colonne prenne une val Macro excel [ par nanie13 ] Bonjour, [Excel] Faire une extraction sans doublon [ par AiDuK ] Bonjour à toutes et à tous,Je cherche actuellement à faire une extraction d'une feuille qui sert de formulaire, vers une pseudo base de donnée sous Ex [Excel] Faire une Extraction en choisissant le fichier et la feuille d'ou l'on extrait [ par AiDuK ] Bonjour à toutes et à tous,Actuellement, mon code me permet d'extraire les informations contenues dans une feuille excel ( formulaire ), afin de les a [Excel | VBA] Condition sur nom de la feuille [ par AiDuK ] Bonjour à toutes et à tous,Mon code est presque terminé, cependant, je boque sur une partie.Ce code permet de parcourir l'ordinateur pour ouvrir n'imp pb temps d'exécution [ par speedyk62 ] Bonjour,Voilà mon problème, j'ai à peu pret 2000 lignes à traiter. J'extrais des données de la feuille b vers la feuille a. Je mets 10 min à exécuter


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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 : 0,484 sec (3)

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