Bonjour à tous,
je n'arrive pas à trouver bureautique dans les domaines MP alors j'espère qu'en l'écrivant dans mon sujet ça suffira. Je débute alors j'ai plein de questions à vous demander.
1)je voudrais savoir si le langage visual basic est le même sous excel et sous ecces.
2) Je n'ai toujours pas bien compris comment on cré une macro. j'ai compris qu'on fait nouvelle macro enregistrer sous. C'est après que je comprend. Quelle actions dois je prendre si je veux créer une nouvelle table qui contiendrais des valeurs modifiées de ma table d'origine.
3) j'ai vu que lorsque je clic sur une action cela écrit plein de truc en langage visual basic. Si j'écris un programme qui me dit de transformer les valeur de ma table d'origne en d'autres valeurs, est ce que je dois je le mettre dans le pogramme de mes actions où est ce que je le laisse à part? je ne comprend pas bien tout ça.
4) je voudrais que la variable de mon programme recoive la valeur d'une case de mon tableau et qu'ensuite ma variable va se dépacer d'une case:
quel langage me permet de dire que ma variable recoit la valeur d'une case donnée?
comment je fait pour déclarer le tableau avec ses rang et ses colonnes?
Ocean dit : je n'arrive pas à trouver bureautique dans les domaines MP alors j'espère qu'en l'écrivant dans mon sujet ça suffira. Je débute alors j'ai plein de questions à vous demander.1)je voudrais savoir si le langage visual basic est le même sous excel et sous ecces. 2) Je n'ai toujours pas bien compris comment on cré une macro. j'ai compris qu'on fait nouvelle macro enregistrer sous. C'est après que je comprend. Quelle actions dois je prendre si je veux créer une nouvelle table qui contiendrais des valeurs modifiées de ma table d'origine. 3) j'ai vu que lorsque je clic sur une action cela écrit plein de truc en langage visual basic. Si j'écris un programme qui me dit de transformer les valeur de ma table d'origne en d'autres valeurs, est ce que je dois je le mettre dans le pogramme de mes actions où est ce que je le laisse à part? je ne comprend pas bien tout ça.4) je voudrais que la variable de mon programme recoive la valeur d'une case de mon tableau et qu'ensuite ma variable va se dépacer d'une case:quel langage me permet de dire que ma variable recoit la valeur d'une case donnée?comment je fait pour déclarer le tableau avec ses rang et ses colonnes?
Sur MP
le langage VBA et les questions pour Excel et Access sont deux forums distincts, le VBA de Excel est traité dans Bureautique (excel ou VBA) et le VBA de Access est traité dans Base de données (access ou VBA)
donc tu pourras constater que le VB pour faire des applications avec VB6 par exemple est aussi un forum très distinct et séparé des autres VB
(car il y a VB2005, 2008 .VB.NET etc....) sans parler de VB.script
je sais parfois certains mélangent ;-((((
donc pour revenir à la question 1 le langage VBA est quelque peu différent car chaque application emploie des mots différents.
Question 2 et les autres:
Dans l'explication que tu donnes c'est la façon de faire une macro avec l'enregistreur de macro, une macro peut aussi être faites en créant du code dans une procédure ou une fonction que l'on met soit dans des Form ou des modules ou des modules de class
c'est faisable dans excel mais c'est différent dans access
pour modifier une table il faut parfois mélanger le VBA avec le language SQL
mais là il est préférable de prendre un bouquin spécialisé traitant du sujet et de le potasser
si tu parles de table, il s'agit de access sans doute ??? idem il faut potasser ou regarder des tutoriaux il y a en a pleins sur le net avec des exemples
Cdlt
RGI
__________________________
PS: VBA pour EXCEL est maintenant dans Bureautique
merci de poser vos questions VBA à cet endroit
salutations
RGI
Un MERCI en retour c'est sympa
et ne pas oublier le tag :après résolution.
Salut RGI
Je te remercie de m'avoir dis que sous acces et excel ce n'était pas le même langage. Si tu me dis qu'il faut savoir utiliser le langage sql et viqual basic sous acces je crois que je vais me contenter d'excel. Ce sera sans doute plus simple pour moi. En fait, je dsipose de plusieurs fichiers qui décrivent chacun un endroit donné. Dans chaque tableau j'ai un champ avec une liste de variables (temperature,oxygène...) et le reste de mes champs correspond aux valeurs prises par mes variables pour un mois donné. Ce que je voudrais c'est pouvoir créer un nouveau tableau du même type mais où les valeurs des cellules seraient modifiées selon d'autres critères. Pour cela les outils d'acces et de excel ne peuvent pas m'aider.Jepense qu'il faut faire de la programmation. D'où l'intérêt de mes question 2-3-4. Je ne comprend pas comment on fait pour attribuer à une variable les valeurs données d'un tableau excel? et pour que les cases demon tableau se décalent à chaque fois d'un rang? Une autre question, comment faire pour conserverles entêtes de mes champs alors que le reste du tableau correspond à des chiffres?
J'ai beau chercher sur les aides (excel,microsoft...) je vois comment créerun tableau mais pas comment attribuer les valeurs d'un tableau déjà existant.
Ensuite j'aimerais que tu m'explique ou je dois insérer mon programme lorsque je cré ma macro.
PS désolée la touche espace de l'ordi ne marche pas très bien.
je ne dis pas que le VBA de Excel est complétement différent du VBA d'access mais comme certains mots sont employés pour excel et d'autres pour access il est facile de comprendre que je dise que ce ne sont pas des langages identiques
Bref pour choisir entre Excel et Access si ton travail consiste à des traitements de tableaux tu peux choisir excel mais si ton travail traite des bases de données il faut prendre access.
pour changer de rang comme tu le dis il faut savoir que excel utilise des lignes et des colonnes (c'est important d'utiliser la même formulation des mots pour se comprendre)
donc pour changer de ligne, il faut rechercher la dernière ligne non vide à laquelle on ajoute 1 ce qui donne la première ligne vide
par exemple dans la colonne A
premierelignevide = range("A65536").end(xlup).row+1
pour attribuer une valeur à une variable on commence par dimensionner cette variable par un Dim ensuite il faut la déclarer c'est à dire dire si cette variable est long ou string ou integer ou etc...(voir l'aide pour ces déclarations)
ceci fait on peut dire variable1 = range("a1").value
c'est a dire qu'a la variable (variable1) on donne la valeur de la cellul A1
on peut également faire le contraire
range("a1").value = variable1
voilà pour commencer
RGI
__________________________
PS: VBA pour EXCEL est maintenant dans Bureautique
merci de poser vos questions VBA à cet endroit
salutations
RGI
Un MERCI en retour c'est sympa
et ne pas oublier le tag :après résolution.
Salut RGI
Merci tu m'as bien éclairé. Comme j'ai pludieurs tables qui traitent du même genre de donnée et que je veux pouvoir regrouper une ligne donnée de chaque table dans un seul et même fichier je suis obligé d'utiliser acces. Sans toi j'aurais toutjours été en train de chercher une solution pour faire ça sous excel.
Donc comme tu vas utiliser access tu vas être obligée de faire des formulaires pour ajouter ou supprimer des données sur tes tables.
et tu feras de requete pour filtrer tes données (par exemple)
ensuite tu feras des états pour visualiser le résultats de tes requetes et pour pouvoir les imprimer.
Bon courage dans tes recherches
PS: le forum Access sur trouve dans base de données sur MP
je ne sais pas s'il y a beaucoup d'intervenants en ce moment
Cdlt
RGI
__________________________
PS: VBA pour EXCEL est maintenant dans Bureautique
merci de poser vos questions VBA à cet endroit
salutations
RGI
Un MERCI en retour c'est sympa
et ne pas oublier le tag :après résolution.
Salut RGI,
Nouveau changement de cape!et cette fois c'est la dernière.
J'ai trouvé un moyen sous excel qui me permettra (je l'espère de faire ce que je veux).Par contre je n'ai toujours pas bien compris comment marche les numéros des cellules et j'ai 4 problèmes (je te précise que je travaille toujours à partir d'un tableau excel).
1)Je ne suis pas bien sûre que ma méthode soit la meilleure pour définir mon tableau de données excel et joindre ses valeurs à mes variables.
2) je ne sais pas quand il faut utiliser A1 et quand il faut utiliser 1,1.
Avec la boucle for j'arrive à utiliser les ".cells(1,2). value";
par contre avec while je n'y arrive pas. je te précise que j'ai utiliser la boucle for dans un autre petit programme.
3)Avec les A1... je ne comprend comment faire pour décaler mes cellules. J'ai pourtant essayé avec :
"Range("C9").Select
ActiveCell.Offset(0, 1) "
4) J'ai toute une ligne avec des chiffres. j'ai dit que la variable compteur recevait les valeurs des cellules de ma ligne à chaque décalage de cellule. Juste après la serie de chiffre j'ai une cellule avec le mot mini.
dans ma condition while j'ai mis: tant que ma variable compteur est différente du mot "mini" alors faire...
a chaque fois excel plante. La boucle ne doit pas s'arrêter et je ne comprend pas pourquoi la condition ne marche pas. j'ai essyé avec une ligne de date de mon tableau qui se termine par des cases vides(condition::<>""). c'est la même chose.
je t'envois mon script pour que tu puisse mieux te rendre compte. (attention il me fait planté excel si je lance la macro)
Sub Macro()
Dim mois1, mois2 As Date
Dim compteur As Variant
Set datatablerange = Worksheets("0").Range("B2:M14")
Set rowinpoutcell = Worksheets("0").Range("B2")
mois1 = Worksheets("0").Range("B9").Value
mois1 = Worksheets("0").Range("C9").Value
compteur = Worksheets("0").Range("B10").Value
campagne = 1
While compteur <> "mini"
If mois1 <> mois2 Then campagne = 1
If mois1 = mois2 Then campagne = campagne + 1
Worksheets("0").Range("B8").Value = campagne
Range("B9").Select
ActiveCell.Offset(0, 1).Activate
Range("C9").Select
ActiveCell.Offset(0, 1).Activate
Range("B10").Select
ActiveCell.Offset(0, 1).Activate
la feuille se nomme "0" ??? ou c'est la feuille n° 1 car il n'y a pas de feuille 0
moi j'ai mis "zero"
Sub Macro()
Dim mois1, mois2 As String 'As Date 'ici erreur
Dim compteur As Variant
Set datatablerange = Worksheets("zero").Range("B2:M14")
Set rowinpoutcell = Worksheets("zero").Range("B2")
mois1 = Worksheets("zero").Range("B9").Value
mois 2 = Worksheets("zero").Range("C9").Value 'ici erreur
compteur = Worksheets("zero").Range("B10").Value
campagne = 1
While compteur <> "mini"
If mois1 <> mois2 Then campagne = 1
If mois1 = mois2 Then campagne = campagne + 1
Worksheets("zero").Range("B8").Value = campagne
Range("B9").Select
ActiveCell.Offset(0, 1).Activate ' tu fais quoi ?
Range("C9").Select
ActiveCell.Offset(0, 1).Activate ' tu fais quoi ?
Range("B10").Select
ActiveCell.Offset(0, 1).Activate ' tu fais quoi ?
Wend
End Sub
explications pour le range
range("colonne ligne") ex: range("A1") peut aussi s'ecrire range("A" & "1")
donc si nous avons ligne comme variable de ligne on peut ecrire
range("A" & ligne) sans guillemet à ligne ;-))
si nous avons col comme variable de colonne nous pouvons ecrire
Range(col & "1").Select
et si nous avons deux variables nous pouvons ecrire
Range(col & lig).Select
la manipe avec cells
cells(1,1) => cells(ligne,colonne) attention c'est l'inverse de range et sépareé par une virgule
pour les offset il y a moyen de faire plus court mais c'est bon
j'ai essayé la macro elle fonctionne mais bien entendu elle tourne en rond
pour arrêter faire Ctrl + Pause et cliquer sur le bouton débogage
RGI
__________________________
PS: VBA pour EXCEL est maintenant dans Bureautique
merci de poser vos questions VBA à cet endroit
salutations
RGI
Un MERCI en retour c'est sympa
et ne pas oublier le tag :après résolution.