> Tous les forums > Forum Bureautique
 Problème de suppression de données VBA dans base
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
Yaloo
  Posté le 04/03/2011 @ 10:53 
Aller en bas de la page 
Petit astucien

Bonjour à tous,

Et oui, c'est encore moi!!!

Voici l'exemple de mon fichier

Dans mon fichier réél j'ai défini des noms par le "gestionnaire de noms" du type =DECALER(BD!$B$2;;;NBVAL(BD!$B:$B)-1;) , =DECALER(BD!$C$2;;;NBVAL(BD!$C:$C)-1;) , etc... Tout va bien lorsque je supprime une ligne autre que la première ligne de ma base.

If OkSuppr = 6 Then
i = 2
Z = Me.ListView1.SelectedItem
With WsBD
iR = WsBD.Range("A2:F" & MEM - 1)
Do While Y = False
If .Cells(i, 1) = Z Then
.Rows(i).Delete
MEM = MEM - 1
Y = True
Else
i = i + 1
End If
Loop
End With

ListView1.ListItems.Remove (ListView1.SelectedItem.Index)

Lorsque que je supprime la première ligne, dans le "gestionnaire de noms" définit plus haut m'indique =DECALER(BD!#REF!;;;NBVAL(BD!$C:$C)-1;), donc ça plante ma récupération de données, j'ai essayé ce qui suit, mais ça ne fonctionne pas. Car Z renvoi le numéro Id et non le numéro de la ligne. Et donc forcément ça plante à la ligne en rouge. J'ai essayé plein de truc mais je bloque.

If OkSuppr = 6 Then
i = 2
Z = Me.ListView1.SelectedItem
With WsBD
iR = WsBD.Range("A2:F" & MEM - 1)
Do While Y = False
If .Cells(i, 1) = Z Then

Tablo = Range(Cells(Z + 1, 1), Cells(MEM, 6))
Range(Cells(Z, 1), Cells(MEM, 6)) = Tablo
Range(Cells(MEM, 1), Cells(MEM, 6)).ClearContents


MEM = MEM - 1
Y = True
Else
i = i + 1
End If
Loop
End With

ListView1.ListItems.Remove (ListView1.SelectedItem.Index)

Auriez-vous une idée ?

{#}

Publicité
galopin01
 Posté le 04/03/2011 à 11:13 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

bonjour,

Je n'ai pas trop le temps de tester aujourd'hui mais essaye au lieu de :

=DECALER(BD!$B$2;;;NBVAL(BD!$B:$B)-1;)

mettre :

=DECALER(BD!$B$1;1;;NBVAL(BD!$B:$B)-1;)

ça devrait coller. idem pour la colonne C

A+

Yaloo
 Posté le 04/03/2011 à 15:50 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour Galpin,

Ca fonctionne.

Par contre, dans une autre feuille, j'ai une formule du type =si(BDF!A2="";vrai;faux)

Lorsque je supprime la première ligne de ma base, j'ai =si(BDF!#REF!;vrai;faux)

Donc forcément ça me renvoit #REF!

C'est aussi pour ça que je voulait utiliser qqchose du type

Tablo = Range(Cells(Z + 1, 1), Cells(MEM, 6))
Range(Cells(Z, 1), Cells(MEM, 6)) = Tablo
Range(Cells(MEM, 1), Cells(MEM, 6)).ClearContents

Tu m'avais fait ça pour un autre fichier et je pensais que ce pouvait être la solution a mon problème.



Modifié par Yaloo le 04/03/2011 15:51
galopin01
 Posté le 04/03/2011 à 19:22 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Là... J'ai plongé ma boule de cristal dans le marc de café mais c'est un peu obscur !

Yaloo
 Posté le 04/03/2011 à 20:51 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bon tout ça c'est sur le fichier que je t'ai envoyé

A+

galopin01
 Posté le 14/03/2011 à 01:57 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonjour,

Je ne te serai pas d'une grande aide sur ce coup. Je ne pense pas que tu puisses résoudre ce genre de problème par formules. Enfin... en tout cas moi je ne m'y essaierai pas.

Peut-être que tu trouveras des formuleux costauds qui pratiquent ce genre de sport ? Pour ma part je ne m'y aventure guère. D'ailleurs je ne suis pas certain que ce soit possible. En tout cas conceptuellement ça me choque.

Une fois que tu mets le doigt dans une base de donnée et les USF, il faut mener ton projet jusqu'au bout par macro : il n'est plus question de faire référence à ta base de donnée par formule sous peine de la punition que tu évoques. Et appliqué à la gestion de RH c'est diablement compliqué, surtout au niveau débutant.

Tes en-têtes de BD sont pollués et ne correspondent pas aux plages nommées. La BD n'est pas définie...

Dans ta feuille date les plages nommées dynamiques sont complètement faussées par l'ajout de la ligne 1.

Dans les modules de Main et Func tu peux virer toutes les Déclarations Def... en têtes de module : C'est un résidu de ma programmation, parfaitement inutile chez toi.

En résumé, je ne vis pas bien ce que je peux faire pour toi dans ce cas. C'est une question qui dépasse largement le cadre de ce forum.

Si je devais vraiment suggérer une direction à partir de l'existant je supprimerai le contenu de la feuille récap et je travaillerai plutôt avec les BD* (Fonctions de base de donnée) et puis je ramènerai les résultats dans la feuille date par formule...

Yaloo
 Posté le 14/03/2011 à 08:39 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bon

Merci d'y avoir jeté un coup d'oeil.

A+



Modifié par Yaloo le 14/03/2011 08:39
Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
720,98 €Ecran PC incurvé 49 pouces Samsung C49HG90 (3840x1080, 1 ms, 144 Hz) à 720,98 € livré
Valable jusqu'au 16 Octobre

Amazon Espagne fait une promotion sur l'écran PC incurvé 49 pouces Samsung C49HG90 à 694,20 €. Comptez 26,78 € pour la livraison en France soit un total de 720,98 € livré en France. On le trouve ailleurs à partir de 899 €. Cet écran incurvé offre une définition de 3840x1080 pixels et possède une dalle 144 Hz. Vous pouvez Utiliser la fonction Picture-by-Picture pour afficher simultanément le travail de deux PC. 


> Voir l'offre
89,99 €Clavier sans-fil bluetooth Logitech MX Keys Plus à 89,99 €
Valable jusqu'au 17 Octobre

Amazon fait une belle promotion sur le clavier sans-fil bluetooth Logitech MX Keys Plus qui passe à 89,99 € alors qu'on le trouve ailleurs autour de 119 €. Profitez d'une frappe parfaitement fluide, naturelle et précise grâce aux touches concaves qui épousent la forme de vos doigts et leurs bords arrondis qui offrent un retour satisfaisant.  

Le clavier Logitech MX Keys est équipé de la technologie Logitech Flow. Cette dernière, vous permet de taper du texte sur un ordinateur et de le finir sur un autre, d'effectuer des copier-coller de texte, d'une image ou encore d'un fichier d'une machine à une autre. Le Logitech MX Keys est aussi équipé de capteurs de proximité qui détectent vos mains et illuminent le clavier au moment où vos doigts approchent des touches. A l'inverse, les touches rétro-éclairées s'éteignent quand vous quittez le bureau pour économiser de l'énergie. Aussi, l'intensité du rétro-éclairage s'adapte aux conditions d'éclairage ou peut être définie manuellement.

Cette version Plus est fournie avec un avec un repose poignet anti dérapant.


> Voir l'offre
85,30 €Kit de 16 Go (2x8 Go) de mémoire DDR4 Corsair Vengeance RGB Pro 3600 MHz à 85,30 € livré
Valable jusqu'au 16 Octobre

Amazon Allemagne fait une promotion sur le kit de 16 Go (2x8 Go) de mémoire DDR4 Corsair Vengeance RGB Pro 3600 MT/s CL18 à 80,57 € (avec la TVA ajustée). Comptez 4,73 € pour la livraison en France soit un total de 85,30 € livré alors qu'on le trouve ailleurs autour de 110 €. Vous pourrez personnaliser la palette de couleurs directement depuis le logiciel Corsair iCU.

Vous pouvez utiliser votre compte Amazon France sur Amazon Allemagne et il n'y a pas de douane.


> Voir l'offre

Sujets relatifs
reinitialiser clé primaire dans une base de données LIBRE OFFICE
Formulaires dans base de données
Recherche de Valeurs dans une base de données
Erreur java dans base de données libreoffice
base de données dans EXCEL
Works 9 Base de données problème de copier coller
Liaison d'une table dans plusieurs base de données
Probleme pour importer donnees dans les cellules
Problème base de données
trouver des valeurs cible dans une base de donnees
Plus de sujets relatifs à Problème de suppression de données VBA dans base
 > Tous les forums > Forum Bureautique