Syntaxe Macro VBA

Bonjour,

Toutes mes excuses.
Je réitère mon message sur un nouveau fil.

Comment déboguer cette macro dans laquelle la syntaxe de la ligne 14 bloque ?

1. Sub ajouter()
2. '
3. ' ajouter Relevé Macro
4. '
5. Dim Entree1 As Integer
6. Dim Entree2 As Integer
7. Dim Msg1 As String
8. Dim Msg2 As String
9. Msg1 = "Noter le n° de la ligne à partir de laquelle vous voulez ajouter 20
    lignes"
10. Msg2 = "Noter le n° de la dernière ligne (nbr de lignes - 1)"
11. Entree1 = InputBox(Msg1)
12. Entree2 = InputBox(Msg2)
13. If IsNumeric(Entree1) Then
14. Rows("Entree1:Entree2").Select
15. Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
16. Sheets("Feuil2").Select
17. Range("I1:I20").Select
18. Selection.Copy
19. Sheets("Feuil1").Select
20. Range("Entree1").Select
21. Selection.PasteSpecial Paste:=xlPasteValues
22. End If
23. End Sub

Je voudrais aussi supprimer Msg2 en créant une variable Entree2 = Entree1 + 19 mais c'est aussi refusé.
Merci

Bonjour,

Toutes mes excuses.
Je réitère mon message sur un nouveau fil.

Il n'est pas indispensable de s'excuser de ne pas savoir

Comment déboguer cette macro dans laquelle la syntaxe de la ligne 14 bloque ?

1. Sub ajouter()
2. '
3. ' ajouter Relevé Macro
4. '
5. Dim Entree1 As Integer
6. Dim Entree2 As Integer
7. Dim Msg1 As String
8. Dim Msg2 As String
9. Msg1 = "Noter le n° de la ligne à partir de laquelle vous voulez ajouter 20
   lignes"
10. Msg2 = "Noter le n° de la dernière ligne (nbr de lignes - 1)"
11. Entree1 = InputBox(Msg1)
12. Entree2 = InputBox(Msg2)
13. If IsNumeric(Entree1) Then
14. Rows("Entree1:Entree2").Select

Je ne suis pas très fort en programmation mais ligne 14 une erreur est évidente:
aucune cellule ne peux s'appeler "entree1:entree2"
Il faut écrire quelque chose comme Rows(""&Entree1&":"&Entree2&"")
éventuellement créer une variable valant l'adjonction de Entree1 à Entree2 avec ajout d'un ":" au milieu puis récupérer cette valeur
sans parenthèses dans la fonction Rows().Select

15. Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
16. Sheets("Feuil2").Select
17. Range("I1:I20").Select
18. Selection.Copy
19. Sheets("Feuil1").Select
20. Range("Entree1").Select
21. Selection.PasteSpecial Paste:=xlPasteValues
22. End If
23. End Sub

Je voudrais aussi supprimer Msg2 en créant une variable Entree2 = Entree1 + 19 mais c'est aussi refusé.
Merci

Là je ne vois pas l'erreur
peut être que la boite de dialogue renvoie du texte et donc du texte plus du chiffre "don't match"

En espérant avoir fait avancé le shmilblick

Jacques CHAILLET

En y réfléchissant un peu plus une piste m'est revenue

Pour envoyer une valeur une fonction est indispensable donc il faut ici créer une fonction qui crée les valeurs Entree1 et Entree2
sur la base de l'envoi de la boite de dialogue sous le nom de Msg1 et Msg2 et les met en forme.

puis utiliser cette fonction dans la ligne rows(fonction()).select

je sais qu'andrew pitoniack à créé plein d'exemples pour OpenOffice.org en macros

Il doit y avoir des choses utiles pour ton cas.

Bonsoir

Jacques CHAILLET

PS: pour l'instant j'ai mis en suspend les macros dans mes feuilles de calcul mais je ne vais pas tarder à m'y remettre....

Bonjour,

Toutes mes excuses.
Je réitère mon message sur un nouveau fil.

Comment déboguer cette macro dans laquelle la syntaxe de la ligne 14 bloque ?

1. Sub ajouter()
2. '
3. ' ajouter Relevé Macro
4. '
5. Dim Entree1 As Integer
6. Dim Entree2 As Integer
7. Dim Msg1 As String
8. Dim Msg2 As String
9. Msg1 = "Noter le n° de la ligne à partir de laquelle vous voulez ajouter 20
   lignes"
10. Msg2 = "Noter le n° de la dernière ligne (nbr de lignes - 1)"
11. Entree1 = InputBox(Msg1)
12. Entree2 = InputBox(Msg2)
13. If IsNumeric(Entree1) Then
14. Rows("Entree1:Entree2").Select
15. Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
16. Sheets("Feuil2").Select
17. Range("I1:I20").Select
18. Selection.Copy
19. Sheets("Feuil1").Select
20. Range("Entree1").Select
21. Selection.PasteSpecial Paste:=xlPasteValues
22. End If
23. End Sub

Je voudrais aussi supprimer Msg2 en créant une variable Entree2 = Entree1 + 19 mais c'est aussi refusé.
Merci

En y réfléchissant un peu plus une piste m'est revenue

Pour envoyer une valeur une fonction est indispensable donc il faut ici créer une fonction qui crée les valeurs Entree1 et Entree2
sur la base de l'envoi de la boite de dialogue sous le nom de Msg1 et Msg2 et les met en forme.

puis utiliser cette fonction dans la ligne rows(fonction()).select

je sais qu'andrew pitoniack à créé plein d'exemples pour OpenOffice.org en macros

Il doit y avoir des choses utiles pour ton cas.

Bonsoir

Jacques CHAILLET

PS: pour l'instant j'ai mis en suspend les macros dans mes feuilles de calcul mais je ne vais pas tarder à m'y remettre....

Merci de se repencher sur mes macros.
Ce fil était résolu.

Pour envoyer une valeur une fonction est indispensable donc il faut ici créer une fonction qui crée les valeurs Entree1 et Entree2
sur la base de l'envoi de la boite de dialogue sous le nom de Msg1 et Msg2 et les met en forme.
puis utiliser cette fonction dans la ligne rows(fonction()).select

ça c'est hors de mes compétences :-[

Cordialement,
Sandy-Pascal Andriant

Bonjour Sandy,

François Fouchet un informaticien de talent à écrit de nombreuses fonctions et macros pour appuyer son excellent logiciel de navigation utilisé par les pilotes privés.

Vous pouvez trouver un exemplaire de sa feuille de calcul en suivant ce lien:

http://www.cijoint.fr/cjlink.php?file=cj201110/cij9JrxRq1.ods

elle contient toute une série de macro- commandes en visual basic open-office avec des fonctions.

C'est un excellent exemple de bonne programmation. Que je ne suis malheureusement pas capable d'égaler pour l'instant.

Bonne continuation

Bonsoir

Jacques CHAILLET