Code simple qui plante dès le début
Bonjour,
Quelqu'un aurait la gentillesse pour voir mon code simple qui plante ?
Sub Saisi_AutoCde()
Application.ScreenUpdating = False 'est primordiale si l'on veut gagner afin d'optimiser lors, du traitement
'en écriture sur des Ranges ou sur des Manipulation de Feuilles.
Dim Cde As Variant
Dim MaValeur As Variant
Dim MaPlage As Range
Dim MaColonne As Single
Dim i As Variant
Dim x As Integer
Dim nbligne As Integer
Dim Dte As String
'Données pour la recherchev
MaValeur = Sheets("ici").Range("B2") 'ma valeur de recherchev
Set MaPlage = Sheets("EQV_DEST").Range("A:C") 'mes colonnes de recherchev de l'onglet "EQV_DEST"
MaColonne = 3 'ma recherchev se fait sur la 3e colonne
ValeurProche = False ' valeur faux
Sheets("ici").Range("C7").Select
Range(ActiveCell, ActiveCell.End(xlDown)).Copy Sheets("Commande").Range("P2")
Sheets("ici").Range("D7").Select
Range(ActiveCell, ActiveCell.End(xlDown)).Copy Sheets("Commande").Range("S2")
Sheets("ici").Range("E7").Select
Range(ActiveCell, ActiveCell.End(xlDown)).Copy Sheets("Commande").Range("Q2")
If IsError(Application.VLookup(MaValeur, MaPlage, MaColonne, ValeurProche)) Then
MsgBox "Le code destinataire de la Cde client est inconnue dans l'onglet du tableau EQV_DEST"
Else
i = Application.VLookup(MaValeur, MaPlage, MaColonne, ValeurProche)
End If
nbligne = Sheets("Commande").Range("P" & Rows.Count).End(xlUp).Row
Cde = Sheets("ici").Range("D1") 'j'affecte la donnée à une variable
Dte = InputBox("Saisir la DATE DE LIV prévue comme ceci : jj/mm/aaa La date ne doit pas être révolue", "SAISIE DATE LIV")
If Dte = "" Then Exit Sub
For x = 2 To nbligne
If Sheets("Commande").Range("P" & x) <> "" Then
Sheets("Commande").Range("D" & x).Value = i And Sheets("Commande").Range("A" & x).Value = Cde
End If
Next x
End SubEdit modo : code mis entre balises, merci d'y faire attention la prochaine fois
Hello,
Alors, première chose tu as oublié de réactiver le Application.ScreenUpdating à la fin.
Après il serait bien de nous dire sur quelle ligne de code l'erreur intervient...
Je vois que tu utilises Application.Vlookup, je sais que j'ai eu des soucis avec ça. J'utilise plutôt Application.WorksheetFunction.Vlookup
Également sur tes lignes de conditions, tu ne dis pas à quelle valeur est liée le IsError.
Exemple, il faudrait essayer avec ça :
If IsError(Application.VLookup(MaValeur, MaPlage, MaColonne, ValeurProche)) = True Then
N'hésite pas si besoin
@+
Bonjour Dangdang,
Vous voudrez bien respecter la charte du forum indiqué sur votre précédent post
https://forum.excel-pratique.com/s/goto/1106581
Vous auriez lu la charte, il y est indiqué qu'il faut mettre le code entre balises
La prochaine fois c'est poubelle... merci d'y faire attention
Bonsoir,
Merci à vous temps d'avoir pris le temps pour lire mon code parmi des milliers.
Et désolé pour BrunoM45 car je vous assure que j'ai lu la charte mais pas fais attention.
Je reviens à mon code 1. Le souci provenait du fait qu'il a fallu coder en sélectionnant les n° de feuilles souhaitées à chaque fois.
ex Sheets(1).select
Re,
Je pense que vous n'avez pas fait attention non plus pour ceci
- Ne postez pas la même question sur un autre forum pour éviter de faire perdre bêtement du temps aux membres sur un problème qui peut être déjà résolu sur l'autre forum. L'inverse est également valable, si vous avez déjà posé votre question sur un autre forum, ne créez pas un doublon sur ce forum (à moins d'avoir clôturé le sujet sur l'autre forum).
Navré, mais je clôture ce fil