> 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
177,99 €SSD externe portable USB 3.1 Crucial X6 2 To à 177,99 €
Valable jusqu'au 18 Octobre

Amazon fait une promotion sur le SSD externe Crucial CT2000X6SSD9 2 To qui passe à 177,99 € livré gratuitement au lieu de 240 €. Ce SSD externe portable offre des vitesses jusqu'à 540 Mo/s. Il se branche sur un port USB C ou A (adapteur fourni). Il est compatible PC, Mac, PS4, Xbox One, Android.


> Voir l'offre
256,41 €Disque dur externe Seagate Backup Plus Hub 14 To USB 3.0 à 256,41 € livré
Valable jusqu'au 17 Octobre

Amazon Espagne propose actuellement le disque dur externe Seagate 14 To Backup Plus Hub USB 3.0 à 249,62 €. Comptez 6,79 € pour la livraison en France soit un total de 256,41 € livré. On le trouve ailleurs à partir de 325 €. Grâce à la connectique USB 3.0 (compatible USB 2.0), ce disque dur vous offrira d'excellents débits pour vos transferts et vos sauvegardes. Doté de deux ports USB intégrés en façade, ce disque vous permet de sauvegarder vos fichiers, ainsi que vos photos et vidéos, tout en parcourant et en rechargeant votre tablette, smartphone ou appareil photo, même si votre système est éteint ou en veille. 

Le disque dur ST14000DM001 à l'intérieur est de type CMR.

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


> Voir l'offre
236,69 €Casque sans fil Bose Headphones 700 à 236,69 € livré
Valable jusqu'au 18 Octobre

Amazon Allemagne fait une promotion sur l'excellent casque sans fil Bose Headphones 700 qui passe à 230,92 €. Comptez 5,77 € pour la livraison en France soit un total de 236,69 € livré. On le trouve ailleurs à partir de 329 €. En plus d'un son incroyable, ce casque offre 11 niveaux de réduction active de bruit vous permettent de profiter de la musique, des podcasts, des vidéos et des appels, sans distraction. Un système de microphones révolutionnaire s’adapte aux environnements bruyants et venteux afin de restituer votre voix avec une clarté incroyable lors de vos appels. Vous permet également d'accéder facilement aux assistant vocaux Google et Alexa. Autonomie jusqu'à 20 heures.

Vous pouvez utiiser votre compte Amazon France sur Amazon Allemagne. 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