Else Sans If erreur excel
Résolu
Riicoast
-
ccm81 Messages postés 11033 Statut Membre -
ccm81 Messages postés 11033 Statut Membre -
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.
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
-
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-
-
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. -
-
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".
-
-
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-
-
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.
-
-
De rien
Merci de mettre le sujet à Résolu (en haut à droite de ton premier message)
Bonne fin de journée