Erreur 438 VBA Excel
Résolu
Michaos
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
Michaos Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
Michaos Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je débute en VBA et je ne maitrise pas encore très bien les objets
Dans le cadre d'un projet, je dois réaliser une macro vérifiant le contenu d'un tableau de commande et demandant le délai si les colonnes 1à7 sont bien remplies.
Le probleme c'est que à chacune de mes boucles For each, j'ai l'erreur 438 "Propiété ou méthode non gérée par l'objet"
Voici le programme :
Sub VerifCommand()
Dim NbColonne As Integer
Dim NbLigne As Integer
Dim feuille As Range
Dim cellule As Range
Dim colonne As Integer
NbColonne = 1
NbLigne = 1
Worksheets("Commande").Range("A3").Select 'selectionne A3
For Each cellule In Worksheets("Commande") 'regarde combien il y a de colonne et l'affecte dans NbColonne
If Not (InStr(CStr(Worksheets("Commande").cellule), "") > 0) Then
NbColonne = NbColonne + 1
Else
Exit For
End If
Cells(ActiveCell.Row, ActiveCell.Column + 1).Select
Next cellule
Worksheets("Commande").Cells(3, 1).Select 'selectionne A3
For Each cellule In Worksheets("Commande") 'regarde combien il y a de lignes et l'affecte dans Nbligne
If Not InStr(ActiveCell.Value, "") > 0 Then
NbLigne = NbLigne + 1
Else
Exit For
End If
Cells(ActiveCell.Row + 1, ActiveCell.Column).Select
Next cellule
Worksheets("Commande").Cells(4, 1).Select 'selectionne A2
For Each feuille In Worksheets("Commande") 'change de ligne
For Each cellule In Worksheets("Commande") 'change de colonne
If Not InStr(CStr(Worksheets("Commande").ActiveCell), "") > 0 Then
ActiveCell.Value = InputBox("la cellule " & Cells(ActiveCell.Row, ActiveCell.Column).Value & "n'est pas remplie") 'informe l'utilisateur que la commande n'est pas complète
End If
Cells(ActiveCell.Row, ActiveCell.Column + 1).Select
colonne = cellule.Column
If colonne > NbColonne - 2 Then 's'arrete avant la colonne délai
Exit For
End If
Next cellule
If Not InStr(Worksheets("Commande").ActiveCell, "") > 0 Then 'verifie si la colonne délai est vide
Call UserForm2
End If
Cells(ActiveCell.Row + 1, 1).Select
If Cells(ActiveCell.Row).Value > NbLigne Then
Exit For
End If
Next feuille
End Sub
Je débute en VBA et je ne maitrise pas encore très bien les objets
Dans le cadre d'un projet, je dois réaliser une macro vérifiant le contenu d'un tableau de commande et demandant le délai si les colonnes 1à7 sont bien remplies.
Le probleme c'est que à chacune de mes boucles For each, j'ai l'erreur 438 "Propiété ou méthode non gérée par l'objet"
Voici le programme :
Sub VerifCommand()
Dim NbColonne As Integer
Dim NbLigne As Integer
Dim feuille As Range
Dim cellule As Range
Dim colonne As Integer
NbColonne = 1
NbLigne = 1
Worksheets("Commande").Range("A3").Select 'selectionne A3
For Each cellule In Worksheets("Commande") 'regarde combien il y a de colonne et l'affecte dans NbColonne
If Not (InStr(CStr(Worksheets("Commande").cellule), "") > 0) Then
NbColonne = NbColonne + 1
Else
Exit For
End If
Cells(ActiveCell.Row, ActiveCell.Column + 1).Select
Next cellule
Worksheets("Commande").Cells(3, 1).Select 'selectionne A3
For Each cellule In Worksheets("Commande") 'regarde combien il y a de lignes et l'affecte dans Nbligne
If Not InStr(ActiveCell.Value, "") > 0 Then
NbLigne = NbLigne + 1
Else
Exit For
End If
Cells(ActiveCell.Row + 1, ActiveCell.Column).Select
Next cellule
Worksheets("Commande").Cells(4, 1).Select 'selectionne A2
For Each feuille In Worksheets("Commande") 'change de ligne
For Each cellule In Worksheets("Commande") 'change de colonne
If Not InStr(CStr(Worksheets("Commande").ActiveCell), "") > 0 Then
ActiveCell.Value = InputBox("la cellule " & Cells(ActiveCell.Row, ActiveCell.Column).Value & "n'est pas remplie") 'informe l'utilisateur que la commande n'est pas complète
End If
Cells(ActiveCell.Row, ActiveCell.Column + 1).Select
colonne = cellule.Column
If colonne > NbColonne - 2 Then 's'arrete avant la colonne délai
Exit For
End If
Next cellule
If Not InStr(Worksheets("Commande").ActiveCell, "") > 0 Then 'verifie si la colonne délai est vide
Call UserForm2
End If
Cells(ActiveCell.Row + 1, 1).Select
If Cells(ActiveCell.Row).Value > NbLigne Then
Exit For
End If
Next feuille
End Sub
A voir également:
- Vba erreur 438
- Erreur 3005 france tv - Forum TV & Vidéo
- Incompatibilité de type vba ✓ - Forum Programmation
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
- Erreur 0x80070643 - Accueil - Windows
- Erreur t32 ✓ - Forum Livebox
9 réponses
Bonsoir Michaos,
Il faudrait le classeur pour mieux comprendre car là .. difficile à dire
Pour que l'on puisse avoir accès à une copie du classeur, il déposer sa copie sur un site de stockage tel que www.cjoint.com et nous donner l'adresse Internet de ce lien.
Attention toutefois à ne laisser aucune données sensibles !!
Il faudrait le classeur pour mieux comprendre car là .. difficile à dire
Pour que l'on puisse avoir accès à une copie du classeur, il déposer sa copie sur un site de stockage tel que www.cjoint.com et nous donner l'adresse Internet de ce lien.
Attention toutefois à ne laisser aucune données sensibles !!