enregistrer objet

enregistrer objet - VB/VBA/VBS - Programmation

Marsh Posté le 26-08-2010 à 09:33:12    

Si c'est le cas, l'objet est enregistrer normalement, sinon, un messagte d'erreur apparaît à l'écran.
 
Un objet est définie par deux paramètres X (nom) et Y (prénom). A savoir que les objets peuvent avoir le même nom mais pour un même nom interdit d'avoir le même prénom.
Pour la vérification, j'ai ajouté la variable n mais cela ne fonctionne pas, aurriez vous quelques réponses ?
 
Merci d'avance.

Code :
  1. Sub Enregistrer()
  2. Dim ligne_active_base As Double
  3. Dim n As Double
  4. Ref = Sheets("Formulaire" ).Cells(5, 4)
  5. SN = Sheets("Formulaire" ).Cells(6, 4)
  6. If Ref <> "" And SN <> "" Then
  7.     Sheets("Base de données" ).Rows("1:1" ).AutoFilter Field:=1, Criteria1:="=" & Ref, Operator:=xlAnd
  8.     Sheets("Base de données" ).Rows("1:1" ).AutoFilter Field:=2, Criteria1:="=" & SN, Operator:=xlAnd
  9.    
  10.     n = 0
  11.     For Each cell In Sheets("Base de données" ).Range("A2:A500" ).Cells
  12.     If IsEmpty(cell) Then n = n + 1
  13.     Next cell
  14.    
  15.     If n = 0 Then
  16. ....
  17.     Else
  18. ....
  19.     End if

Reply

Marsh Posté le 26-08-2010 à 09:33:12   

Reply

Marsh Posté le 27-08-2010 à 10:18:43    

Oups, je viens d’apercevoir que mon message a été coupé et donc l’oubli de la politesse, je suis sincèrement désolé il manque le Bonjour à tous.
 
Il manque également le but de mon message, je réécris :  
 
Je suis en train de faire une macro permettant d’enregistrer des objets dans un fichier excel. Cependant je voudrais ajouté une règle : « il ne peut exister deux objets de même X et Y (donc nom et prénom). Une vérification des données est donc nécessaire, si pas de doublon, on enregistre, sinon message d’erreur.
 
Un objet est définie par deux paramètres X (nom) et Y (prénom). A savoir que les objets peuvent avoir le même nom mais pour un même nom interdit d'avoir le même prénom.  
Pour la vérification, j'ai ajouté la variable n mais cela ne fonctionne pas, auriez vous quelques réponses ?  
 
Merci d'avance.
 
Je vous prie encore de bien vouloir m’excuser pour le premier message.

Reply

Marsh Posté le 27-08-2010 à 13:44:26    

Et quel est le message d'erreur?
 
Je ne pense pas qu'on puisse parcourir un Range par cette méthode.
 
Je crois qu'il faut le faire cellule par cellule, avec 2 boucles imbriquées (une pour les lignes, une pour les colonnes).
 

Reply

Marsh Posté le 29-08-2010 à 10:43:16    

le message serait "veuillez vérifier les caractéristiques de l'objet" par exemple.  
 
Je vais essayer de faire comme ceci, trier sur un colone puis par ligne, merci du conseil.

Reply

Marsh Posté le 29-08-2010 à 13:19:59    

Salut, à adapter,si nom et prénom dans colonne 1 et 2 et Feuil1 feuille à balayer, prend en compte la casse


Sub Tst()
Dim sDico As Object
Dim LastRow As Long, s As String, i As Long
     
    LastRow = Feuil1.Range("A" & Rows.Count).End(xlUp).Row
    Set sDico = CreateObject("Scripting.Dictionary" )
     
    For i = 1 To LastRow
        s = Feuil1.Cells(i, 1) & " " & Feuil1.Cells(i, 2)
        If Not sDico.Exists(s) Then
            sDico.Add s, i
            Feuil1.Range("A" & i & ":B" & i).Interior.ColorIndex = xlNone
        Else
            '   Doublon
            Feuil1.Range("A" & i & ":B" & i).Interior.ColorIndex = 36
        End If
    Next i
     
    Set sDico = Nothing
End Sub


Message édité par kiki29 le 29-08-2010 à 13:30:31
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed