Else Sans If erreur excel

Résolu
Riicoast -  
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je suis entrain de faire une base de données dans excel.
J'essaye tant bien que mal de faire une macro me permettant de copier une ligne ajoutée sur ma première feuille, dans une autre feuille et ce sous condition.

Mon but est :

- Si la ligne 8 la cellule colonne 5 = "U" alors elle est copiée dans la feuille "U".
- Si la ligne 8 la cellule colonne 5 = "I" alors elle est copiée dans la feuille "I".
- Si la ligne 8 la cellule colonne 5 = "L" alors elle est copiée dans la feuille "L".

Je dois avoir une erreur dans la rédaction de la macro, je ne la trouve pas. Lors de l'excécution l'erreur "Else sans If" s'affiche.

Voici la partie de ma macro actuelle qui me pause problème :

If Cells(8, 5).Value = "U" Then
With Worksheets("U").Range("A7:AG7")
.Offset(1).Insert xlShiftDown, True
Worksheets("U").Range("A7:AG7").Copy
Worksheets("U").Range("A8:AG8").PasteSpecial xlPasteAll
Worksheets("U").Cells(8, 1).Value = TextBox1


ElseIf Cells(8, 5).Value = "I" Then
With Worksheets("I").Range("A7:AG7")
.Offset(1).Insert xlShiftDown, True
Worksheets("I").Range("A7:AG7").Copy
Worksheets("I").Range("A8:AG8").PasteSpecial xlPasteAll
Worksheets("I").Cells(8, 1).Value = TextBox1


ElseIf Cells(8, 5).Value = "L" Then
With Worksheets("L").Range("A7:AG7")
.Offset(1).Insert xlShiftDown, True
Worksheets("L").Range("A7:AG7").Copy
Worksheets("L").Range("A8:AG8").PasteSpecial xlPasteAll
Worksheets("L").Cells(8, 1).Value = TextBox1
End If
End With
End Sub

Dasn l'attente d'une réponse.

Je vous remercie.

3 réponses

ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Bonjour
Essaies comme ceci

If Cells(8, 5).Value = "U" Then
With Worksheets("U").Range("A7:AG7")
.Offset(1).Insert xlShiftDown, True
Worksheets("U").Range("A7:AG7").Copy
Worksheets("U").Range("A8:AG8").PasteSpecial xlPasteAll
Worksheets("U").Cells(8, 1).Value = TextBox1
End With

ElseIf Cells(8, 5).Value = "I" Then
With Worksheets("I").Range("A7:AG7")
.Offset(1).Insert xlShiftDown, True
Worksheets("I").Range("A7:AG7").Copy
Worksheets("I").Range("A8:AG8").PasteSpecial xlPasteAll
Worksheets("I").Cells(8, 1).Value = TextBox1
End With

ElseIf Cells(8, 5).Value = "L" Then
With Worksheets("L").Range("A7:AG7")
.Offset(1).Insert xlShiftDown, True
Worksheets("L").Range("A7:AG7").Copy
Worksheets("L").Range("A8:AG8").PasteSpecial xlPasteAll
Worksheets("L").Cells(8, 1).Value = TextBox1
End With
End If

End Sub

Cdlmnt
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Mais je crois qu'il va y avoir d'autres problèmes, dans le premier bloc, tu copies depuis la feuille "U" vers la feuille "U"
0
Riicoast
 
Merci pour ta réponse.

Effectivement maintenant je n'ai plus l'erreur qui s'affiche.
Écrivant très rarement du vba ça m'étonnera toujours la précision qu'il faut avoir à l'espace près.

Cependant comme tu le dis il y a une ou plusieurs autres erreurs puisque malgré cela même si dans la cellule E8 il y a "L" ou "I" cela me copie la ligne dans la feuille U.
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Worksheets("U").Range("A7:AG7").Copy
Ici, si j'ai compris, il te faut mettre la feuille origine au lieu de la feuille "U" ou pas de nom de feuille si la feuille origine est la feuille active
0
Riicoast
 
Non cette partie me convient puisque dans la ligne que j'ajoute le fait de copier la ligne au dessus (de la même feuille) me permet de garder les formules (non présente dans la feuille de base).

Mon problème réside mainteant dans le fait que même lorsque sur ma feuille de base j'ai "I" dans la cellule E8 la suite se produit quand même dans la feuille "U" alors que cela devrait se faire sur la feuille "I".
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Bizarre!
Mets le contenu de E8 dans une variable

NF = Cells(8,5).Value
puis
If NF= "U" Then
etc ...

Tu mets un point d'arrêt (clic sir le bord de la fenêtre code) devant la ligne NFR = et tu exécutes ta procédure en pas à pas et tu contrôles la valeur de NF
0
Riicoast
 
Celà ne fonctionne pas. J'ai beau lire et relire la macro je ne trouve pas comment ça se fait qu'elle continue de toujours copier dans la feuille "U3.
0
Riicoast
 
Je viens de faire autrement, et ça a fonctionné.

Puisque j'utilise des textbox d'un userform je n'ai pas mis la reférence de la cellule mais de la textbox. ça me donne du coup :

If Textbox5 = "I" then...
ElseIf textbox5 ="U" then...
Etc..

En tout cas un grand merci à toi de m'avoir aidé. Si un autre problème apparait je sais ou te trouver ;)

Merci.
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
De rien

Merci de mettre le sujet à Résolu (en haut à droite de ton premier message)

Bonne fin de journée
0