[Basic] Excel et une simple boucle For
Résolu
Ralt
-
Bidouilleu_R Messages postés 1181 Date d'inscription Statut Membre Dernière intervention -
Bidouilleu_R Messages postés 1181 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un fichier Excel rempli de nombres. Je souhaiterais faire en sorte que tous les nombres prennent un ajout de 15% (en restant dans la même case).
Voici le code que j'ai utilisé :
Sub Main
Dim i As Integer
For i=3 to 52
Range("B"&i).Value=Range("B"&i).Value*1.15
Next i
End Sub
Il me dit "Erreur d'exécution BASIC. Sous-procédure ou procédure de fonction non définie". Je ne vois pas ce que je n'ai pas défini, puisque la seule variable utilisée est i, que je déclare.
Si vous avez une meilleure solution, n'hésitez pas!
Cordialement,
Ralt.
J'ai un fichier Excel rempli de nombres. Je souhaiterais faire en sorte que tous les nombres prennent un ajout de 15% (en restant dans la même case).
Voici le code que j'ai utilisé :
Sub Main
Dim i As Integer
For i=3 to 52
Range("B"&i).Value=Range("B"&i).Value*1.15
Next i
End Sub
Il me dit "Erreur d'exécution BASIC. Sous-procédure ou procédure de fonction non définie". Je ne vois pas ce que je n'ai pas défini, puisque la seule variable utilisée est i, que je déclare.
Si vous avez une meilleure solution, n'hésitez pas!
Cordialement,
Ralt.
A voir également:
- [Basic] Excel et une simple boucle For
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Word et excel gratuit - Guide
- Liste déroulante excel - Guide
- Déplacer une colonne excel - Guide
- Si et excel - Guide
6 réponses
Bonjour
ne voyant pas d'erreur j'ai testé ta boucle elle fonctionne parfaitement
aurais tu une autre procédure du même nom ?? dans un module ?, dans une macro complémentaire ?
personnellement, je ne nomme jamais une procédure main, c'est un mot clef dans certains langages
dans l'exemple que tu as donné, il maque () apres main, mais l'éditeur vba d'excel les mettant automatiquement, ca doit venir d'une erreur de recopie
ne voyant pas d'erreur j'ai testé ta boucle elle fonctionne parfaitement
aurais tu une autre procédure du même nom ?? dans un module ?, dans une macro complémentaire ?
personnellement, je ne nomme jamais une procédure main, c'est un mot clef dans certains langages
dans l'exemple que tu as donné, il maque () apres main, mais l'éditeur vba d'excel les mettant automatiquement, ca doit venir d'une erreur de recopie
Bonjour,
J'ai oublié de préciser que j'utilisais OpenOffice.org Calc 3.0.4. Normalement, le BASIC devrait être pris en charge comme sur Excel, donc ça ne devrait pas poser de problème. J'ai tenté de mettre Sub Test() à la place (les parenthèses ne sont pas rajoutées automatiquement), mais rien n'a changé, même erreur. Il sélectionne la ligne "Range("B"&i).Value=Range("B"&i).Value*1.15", et me sort l'erreur écrite dans le premier post.
Je pense que je vais faire un test avec Microsoft Excel et vous donner un retour.
Cordialement,
Ralt.
P.S. : c'est la seule macro que j'ai.
J'ai oublié de préciser que j'utilisais OpenOffice.org Calc 3.0.4. Normalement, le BASIC devrait être pris en charge comme sur Excel, donc ça ne devrait pas poser de problème. J'ai tenté de mettre Sub Test() à la place (les parenthèses ne sont pas rajoutées automatiquement), mais rien n'a changé, même erreur. Il sélectionne la ligne "Range("B"&i).Value=Range("B"&i).Value*1.15", et me sort l'erreur écrite dans le premier post.
Je pense que je vais faire un test avec Microsoft Excel et vous donner un retour.
Cordialement,
Ralt.
P.S. : c'est la seule macro que j'ai.
Re-bonjour,
Bon eh bien, après essai sur Excel, ça marche.
OpenOffice.org Calc 3.0.4 supporte donc encore mal le BASIC.
Merci pour votre aide!
Cordialement,
Ralt.
Bon eh bien, après essai sur Excel, ça marche.
OpenOffice.org Calc 3.0.4 supporte donc encore mal le BASIC.
Merci pour votre aide!
Cordialement,
Ralt.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
openoffice "ne supporte pas mal" le basic.
mais l'objet Range n'existe pas sous openoffice.
je reconnais que cela change de VBA
mais l'objet Range n'existe pas sous openoffice.
je reconnais que cela change de VBA
' je viens compléter mon argumentation
' précédente
' deux étapes dans openoffice
' de préférence plaer dans le module Main les appels de sous programmes
' comme je l'ai fait ci-dessous
Sub Main
ModifieListe ' ma procédure
End Sub
'
Sub ModifieListe
REM Déclarations API obligatoires les objets document feuilles, cellules
Dim oDocument As Object, oSheet As Object, oCell As Object
dim I as integer
Dim MaValeur as double
oDocument = ThisComponent
oSheet=oDocument.Sheets.getByName ("Feuille1" )
'
for i=3 to 17
oCell = oSheet.getCellByPosition (0,I )
MaValeur=oCell.value* 1.2
oCell.setvalue(MaValeur)
next I
rem volontairement je suis parti de A3 vers A20
rem MaValeur est une variable double (attention majuscule minuscule important)
End Sub
Cet un exemple vite fait
mais qui peut aider
' précédente
' deux étapes dans openoffice
' de préférence plaer dans le module Main les appels de sous programmes
' comme je l'ai fait ci-dessous
Sub Main
ModifieListe ' ma procédure
End Sub
'
Sub ModifieListe
REM Déclarations API obligatoires les objets document feuilles, cellules
Dim oDocument As Object, oSheet As Object, oCell As Object
dim I as integer
Dim MaValeur as double
oDocument = ThisComponent
oSheet=oDocument.Sheets.getByName ("Feuille1" )
'
for i=3 to 17
oCell = oSheet.getCellByPosition (0,I )
MaValeur=oCell.value* 1.2
oCell.setvalue(MaValeur)
next I
rem volontairement je suis parti de A3 vers A20
rem MaValeur est une variable double (attention majuscule minuscule important)
End Sub
Cet un exemple vite fait
mais qui peut aider