> 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
31,17 €XIAOMI Mi TV Stick à 31,17 €
Valable jusqu'au 03 Août

Cdiscount propose en exclusivité la nouvelle version de la clé HDMI XIAOMI Mi TV Stick à 31,17 €. Cette clé HDMI à brancher sur votre TV possède un processeur quadricoeur, 1 Go de RAM et 8 Go d'espace de stockage, le WiFi et le bluetooth. Elle intègre un Chromecast, est compatible Dolby et DTS et est fournie avec une télécommande qui peut être pilotée à la voix. Elle tourne sous Android TV 9.0 et vous allez pouvoir voir facilement Prime Video, Netflix, Disney+, YouTube, Spotify, Moltov, ... sur votre TV Full HD.


> Voir l'offre
209,99 €Disque dur externe Western Digital Elements Desktop USB 3.0 12 To à 209,99 €
Valable jusqu'au 03 Août

Amazon propose actuellement le disque dur externe Western Digital Elements Desktop USB 3.0 12 To à 209,99 € livré gratuitement. On le trouve ailleurs à partir de 300 €. Ce disque dur dispose d'un grande capacité de stockage (12 To) et d'une connectique USB 3.0 qui vous offrira des transferts rapides. Il est compatible USB 2.0. A l'intérieur, vous trouverez un disque à hélium UltraStar DC HC 520 White (12 To, 5400 tr/min, 256 Mo cache, CMR -> source satdream.tech). Le disque peut être démonté et réutilisé dans un ordinateur, un NAS, etc. Une très bonne affaire


> Voir l'offre
281,43 €Processeur AMD Ryzen 5 5600X à 281,43 € livré
Valable jusqu'au 03 Août

Amazon Allemagne fait une promotion sur le processeur AMD Ryzen 5 5600X qui passe à 276,30 € (avec la TVA ajustée). Comptez 5,17 € pour la livraison en France soit un total de 281,43 € livré alors qu'on le trouve ailleurs à partir de 360 €. Le processeur pour PC de bureau AMD Ryzen 5 5600X propose 6 coeurs natifs et 12 coeurs logiques pour un traitement multitâche agréablement fluide. Grâce à sa fréquence native élevée et à son mode Turbo Core ajustant la puissance en fonction des besoins, le CPU AMD Ryzen de nouvelle génération délivre des performances exceptionnelles dans tous les domaines : Jeux vidéo, multitâche intensif, édition vidéo, modélisation 3D et bien plus encore. Le cache L3 de 32 Mo permet en outre le traitement ultrarapide d'un grand nombre d'instructions grâce à des latences réduites. Fourni avec un système de refroidissement.

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