Souci avec macro qui génère des fiches à partir de données

Bonsoir le forum

En pièce jointe, je fournis un fichier "FichesPB_V4" qui me permet de générer des fiches à partir d'une base de données.

J'ai un souci avec la dernière feuille générée, elle n'est pas complète par rapport à la liste contenue dans la feuille "Données"

Dans le fichier que je joint, la feuille "Données" contient à la fin des lignes "immeubles" et là lorsque je lance la macro, toutes les fiches se génèrent bien, sauf la fiche "immeuble". C'est pas grave celle la je la supprime.

Mais il arrive parfois que la feuille "Données" ne contienne aucune ligne "immeubles" à la fin ou que je les supprime avant de générer les fiches et là la dernière fiche n'est pas correctement remplie.(Adresses, codes IMB et "X")

je ne comprends pas

Les commandes de ce fichier sont Dans le ruban, onglet "FichePB"

Les 3 premières permettent de créer la feuille "Données" et la dernière à enregistrer un fichier sans les macro.

Celle qui nous intéresse c'est "Générer" (Module 1)

ATTENTION IL EST IMPOSSIBLE DE LANCER LES MACROS DIRECTEMENT DU VBA STYLE F5, pour faire ça il faut enlever le texte entre les () après le nom de la maco

D'avance, je vous remercie pour votre aide et votre disponibilité

29fichespb-v4.zip (282.17 Ko)

Bonsoir

Si j'ai compris, modifie la ligne correspondante

For i = 1 To UBound(TC, 1) 'boucle sur toutes les lignes I du tableau de cellules TC
 If UCase(TC(i, 1)) = "IMMEUBLE" Then Exit Sub 'si la valeur ligne I colonne 2 est egale à "Immeubles", sort de la procédure
  If TC(i, 2) <> "" Then 'condition 1 : si la valeur ligne I colonne 2 de TC n'est pas vide

Bonjour le forum

Merci pour ta réponse Bansai64, mais ça ne résoud pas mon problème

Avant de générer les fiches,

Si dans la feuille "Données" il y a au moins une ligne "IMMEUBLE", la dernière fiche (sur cet exemple) 18175 se rempli entièrement et je n'ai pas de fiche "IMMEUBLE"

Par contre et cela arrive, dans si dans le feuille "Données" je n'ai pas de ligne "IMMEUBLE" (et cela arrive souvant lors de la création de cette base de données) alors seule le premier module de la fiche 18175 se rempli correctement.

J'ai l'impression que la macro ne va pas jusqu'au bout de la liste

D'avance je vous remercie pour le temps que vous m'accordez et pour votre aide

Bonjour

Je ne dois pas avoir le bon fichier

Je n'ai pas de fiche 18175

La dernière qui est crée c'est la fiche 15533

A vérifier pour confirmer ou pas

Bonjour

Ok désolé pour toi Bansai64 en fait c'est le même fichier (en tout cas la même base)

le fichier génère le même problème si dans la feuille "Données" on enlève toutes les lignes "immeuble"

Il manque des adresses et des codes dans la dernière fiche

Bonjour

Le problème survient si l'on enlève les lignes "IMMEUBLE", mais pas de problème si en dernier on a des lignes "IMMEUBLE"

Modifie la macro

TC = D.Range("A1:H" & D.Range("C" & Rows.Count).End(xlUp).Row)    'définit le tableau de cellules TC

Bonsoir le forum

Bonsoir Bansai64

Super comme ça sa fonctionne.

mais j'ai un autre souci, je sais j'abuse, mais j'ai maintenant 8 personnes différentes qui utilise ce fichiers et j'ai beau leur dire qu'il faut écrire "IMMEUBLE" en majuscules ils n'y arrivent pas ou alors j'ai un "S" ou juste le "I" ou aussi "IMB" je vous jure ils sont drôle.

donc est ce qu'il ne serait pas possible, de modifier dans la macro pour que par exemple si dans les cellules de la colonne "A" contenant un mot commençant par la lettre "I" majuscule ou non alors suppression de la ligne complète?

Je joint un fichier dans lequel la macro de création de la feuille "Données" va chercher ses éléments.

C'est un dossier "PA" donc à utiliser avec la commande "Données PA"

ATTENTION il n'y a pas forcément de ligne "Immeuble" dans un dossier "PA" dons j'ai besoin que cela fonctionne même si la macro ne trouve pas d'"Immeuble" lors de l'import de données

D'avance merci beaucoup pour votre aide et le temps que vous m'accordez

15pa-79191-001v.xlsx (57.96 Ko)

Bonsoir

Une question: Le/les "IMMEUBLE" est/sont toujours à la fin ?

Réponse Oui modifies le code

[surligner=#FFFF80]If UCase(Left(TC(i, 1), 1)) = "I" Then Exit Sub

Réponse Non modifies le code

  For i = 1 To UBound(TC, 1)  'boucle sur toutes les lignes I du tableau de cellules TC
    If UCase(Left(TC(i, 1), 1)) <> "I" Then  'si la valeur ligne I colonne 2 est egale à "Immeubles", sort de la procédure
      If TC(i, 2) <> "" Then  'condition 1 : si la valeur ligne I colonne 2 de TC n'est pas vide
        ' 
        ' 
        '
      End If  'fin de la condition 1
    End If
  Next i  'prochaine ligne de la boucle
  Application.ScreenUpdating = True  'affiche les rafraîchissements d'écran
End Sub

Bonjour le forum

Bonjour Bansai64

Désolé j'étais absent tout le week-end

Ok c'est super ça fonctionne impec

MERCI beaucoup la c'est le top

Rechercher des sujets similaires à "souci macro qui genere fiches partir donnees"