Comment coder en VB6 sur deux feuilles excel différentes liées par un résultat s
Leicheka
Messages postés3Date d'inscriptionvendredi 28 novembre 2008StatutMembreDernière intervention 1 décembre 2008
-
28 nov. 2008 à 11:29
userrrqi115
Messages postés181Date d'inscriptionmardi 18 novembre 2008StatutMembreDernière intervention 4 février 2011
-
2 déc. 2008 à 12:48
'Bonjour,
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
'Je maîtrise assez bien excel mais en revanche je débute complet en VBA. Et j'avoue
'que je suis plutôt dépassée
'Tout d'abord
'Pourquoi quand je clique dans feuil1(Nom de l'onglet), c'est Général
qui s 'affiche et non Worksheet
'Quelle est la différence ?
'Comment je dois faire pour déclarer mes variables ?
'Dois-je aller dans Général ou dans Worksheet
'A ce niveau-là je n'y comprends pas grand chose
'Après quand il s'agit de raisonner du code je peux faire des petites choses mais bon
'je débute donc ça va venir.
'J'ai un tableau dans feuille 1 qui est un tableau synthétisant les réponses d'une enquête, avec colonnes NOM – JAMAIS (D4) – PARFOIS – SOUVENT – REGULIEREMENT – APPROUVEZ-VOUS (H4) ?
Sur la deuxième feuille je voudrais faire des statistiques pour répondre aux questions suivantes :
« Combien de personnes ne consomme jamais ce produit mais sont favorables au projet ? » et
« Combien de personnes consomme parfois et souhaiterait tel ou tel produit ? » car il y a d’autres colonnes mais le principe reste toujours le même.
'là je voudrais faire deux requêtes mais je ne sais pas comment faire :
'1) Je voudrais dire que tant que D4 n'est pas blanc et que H4 = "OUI" dans le même tableau, aller
'2)dans la seconde feuille excel et ajouter +1 dans <?xml:namespace prefix st1 ns "urn:schemas-microsoft-com:office:smarttags" /??><st1:personname w:st="on" productid="la cellule F">la cellule F</st1:personname>6 (pour à chaque fois incrémenter une personne qui répond à la première question. Et ainsi de suite...
'Ceci doit donc se répéter sur plusieurs lignes (nombre de lignes indéterminé) en ce qui conerne le 1er tableau
'Et ajouter 1 sachant qu'au départ il n'y a pas de valeur dans <st1:personname w:st="on" productid="la cellule F">la cellule F</st1:personname>6, ce sera
'toujours dans F6 du second tableau qu'il y aura le résultat pour cette Question.
J’ai fait une boucle mais je ne sais pas si je dois faire deux boucles différentes avec tant que D4 n’est pas blanc, activer <st1:personname w:st="on" productid="la cellule F">la cellule F</st1:personname>6 et donc tant que F6 = « OUI », aller dans le second tableau. Et là je coince car le second tableau est sur une deuxième feuille ou bien si je fais une seule boucle mais je ne sais pas comment on avec While on enchaîne les deux conditions.
Où dois-je taper mon code dans Workbook ? dans feuille 1 puis ensuite feuille 2 mais là à quel moment je sépare le code. C’est vraiment compliqué ?
Voilà ce que j'ai fait ("J"ai un peu honte")
CODE POUR ENQUETE
Sub ENQUETE()
Dim compteur As Integer, cel As Range, cel1 As Range, cel2 As Range
'on affecte la cellule "D6" à la variable cel
Set cel = Range("D6")
compteur = 1
'le bloc d'instruction suivant va se répéter tant que la cellule n'est pas vide
Do While cel.Offset(compteur) <> ""
cel1.Offset(compteur) = "OUI"
'on affecte la cellule "H6" à la variable cel1
Set cel1 = Range("H6")
If cel = "" Then
Exit Do
End If
compteur = compteur + 1
Loop
End Sub
Sub ENQUETE2()
Dim compteur2 As Integer, cel1 As Range, cel2 As Range, calcul As Integer
compteur2 = 1
'le bloc d'instruction suivant va se répéter tant que la cellule n'est pas vide
Do While cel1.Offset(compteur) = "OUI"
Worksheets("feuille2").Activate
Set cel2 = Range("F4")
cel2 = calcul + 1
If cel1 <> "OUI" Then
Exit Do
End If
compteur2 = compteur2 + 1
Loop
End Sub
'Quelqu'un est-il en mesure de répondre à ma demande ? Merci d'avance.
Leicheka
Leicheka
A voir également:
Comment coder en VB6 sur deux feuilles excel différentes liées par un résultat s
userrrqi115
Messages postés181Date d'inscriptionmardi 18 novembre 2008StatutMembreDernière intervention 4 février 2011 28 nov. 2008 à 13:42
Hello
Ceci devrait te convenir :
---------------------------------------------------------------------------
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 28/11/2008 par USERRRQI115
'
Dim counter 'variable de comptage
Sheets("Feuil1").Select 'feuille contenant les réponse à l'enquête
Range("c2").Select '1ère cellule contenant les noms = colonne non vide jusque la dernière ligne de donnée
Do While Not ActiveCell.Value = ""If ActiveCell.Offset(0, 1).Value "" And ActiveCell.Offset(0, 5).Value "OUI" Then 'tests sur colone D et H
counter = counter + 1 'counter évolue si les 2 test sont vrais
Else:
counter = counter ' pas d'évolution dans le cas contraire
End If
ActiveCell.Offset(1, 0).Select 'nom suivant
Loop
Sheets("Feuil2").Select
Range("F6").Select 'cellule qui doit contenir le compteur
ActiveCell.Value = counter
Leicheka
Messages postés3Date d'inscriptionvendredi 28 novembre 2008StatutMembreDernière intervention 1 décembre 2008 29 nov. 2008 à 01:33
Hello !
Merci beaucoup.
J'ai toutefois corrigé
If ActiveCell.Offset(0, 1).Value "" And ActiveCell.Offset(0, 5).Value "OUI" Then 'tests sur colone D et H
If ActiveCell.Offset(0, 1).Value <> ""
Mais ça c'est un détail comparativement au code que tu m'as proposé car je ne raisonnais pas ainsi. Mais cela va me permettre de voir les différentes facettes et que je dois voir plus loin que le bout de mon nez...
Cependant, ça fonctionne dans le sens où il y a un résultat mais encore plus abhérent c'est que ce code fonctionne pour une autre question et pour laquelle je me suis servi du même code en changeant seulement dans cette nouvelle macro les cellules qui vont bien. En revanche pour celui-là il ne compte pas toutes les réponses puisque je l'ai vérifié pour ces deux macros. Pour une ça marche et pour la première ça ne marche pas. Et alors là c'est incompréhensible. J'ai effacé les résultats puis recommencé à lancer les deux macros mais non seule la seconce marche alors que le code est le même. C'est incroyable, non ?
Là à moins que tu trouves pourquoi je ne suis pas sûre que tu puisses m'aider surtout que je ne vois vraiment pas pourquoi.
Je te remercie encore et espère trouver la solution à moins que si ce n'est pas toi un autre puisse le faire.
Leicheka
userrrqi115
Messages postés181Date d'inscriptionmardi 18 novembre 2008StatutMembreDernière intervention 4 février 2011 29 nov. 2008 à 08:36
Hello,
Peux-tu donner un peu plus de détails sur celle qui marche (but, cellules testées) et celle qui ne fonctionne pas ?
Ce que ne prend pas en compte cette façon de compter est la valeur contenue dans la colonne D( si c'est un espace le code l'interprétera commen non vide :<>"") idem pour la colonne H, à vérifier si le OUI est toujours en majuscules...
Leicheka
Messages postés3Date d'inscriptionvendredi 28 novembre 2008StatutMembreDernière intervention 1 décembre 2008 1 déc. 2008 à 21:57
Hello Great brain,
Désolée de ne pas t'avoir répondu plus tôt mais je viens juste de tester puisque ce W.E. pas là et ce soir : sport. Donc au retour je me suis dit que je devais absolument aller voir si une personne m'avait répondu et c'est encore toi. Merci beaucoup pour ton aide précieuse. Tu m'as tout de suite mise sur la voie. Il n'y avait aucun problème concernant l'homogénéïté des caractères ; en revanche tous les "OUI" n'étaient pas sous le même format. Il y en avait en format police : nombre et ce sont ceux là qui n'étaient pas comptabilisés. Je m'aperçois qu'il faut peu de choses en programmation. C'est pas mon univers, alors pour moi c'est un peu complexe. Mais merci de me faire réfléchir. Je m'aperçois que la programmation c'est une façon de penser. Je ne sais pas si j'ai le cerveau assez souple pour cela mais ça ne me déplaît pas du tout et ça me donne même envie d'aller voir plus loin.
Merci beaucoup pour ton aide, vraiment. Je ne pensais pas découvrir un autre univers. J'ai l'impression d'être dans un autre monde. Je te remercie de me faire partager ta passion. Pour l'instant je suis "a little brain" mais peut-être It will grow up. Je blague bien sûr.
Merci pour ton aide.
Leicheka
Vous n’avez pas trouvé la réponse que vous recherchez ?
userrrqi115
Messages postés181Date d'inscriptionmardi 18 novembre 2008StatutMembreDernière intervention 4 février 2011 2 déc. 2008 à 12:48
Hello,
Content d'avoir pu te donner un coup de pouce. C'est pas toujours possible car au final, je connais pas grand chose en VB, c'est un univers tellement vaste et je ne suis qu'un petit user.
Je te souhaite bonne route dans ta découverte du coding.