Mise à jour automatique de cellules dans différentes feuille

Bonjour à vous tous.

Je viens quémander vos lumières, malgré un grand tour dans différents forums, je n'ai pas trouvé de solutions.

Pour une mise à jour de base GPS (Voir fichier https://www.cjoint.com/c/DDznTWT60rd ), le fichier est trop important pour être joint

la macro du fichier sert à l'éclatement des feuilles en plusieurs fichiers.

Ce que je désire: copier automatiquement les valeurs des cellules des colonnes A et B feuille1, quand les cellules de contrôle en E et F restent vides, à l'adresse indiquée par la cellule colonne H, vers les feuilles 2 ou 3 ou 4-etc.

Une formule en E et F contrôle dans les différentes feuilles la présence exacte des valeurs respectives des cellules en A et B.

Colonne G contrôle la désignation de C et H le N° de l'aire extrait en D.

Dans le cas où les valeurs ne sont pas exacte la ou les cellules restent vides, en jaune avec une MFC.

J'ai fais des recherches sur plusieurs sites mais sans résultats adapté à mon cas.

Je vous remercie par avance pour votre bienveillance à mon égard, j'arrive, un peu, à me débrouiller avec les formules mais une bille avec les macros.

Bien cordialement à vous tous.

Bonjour,

Essaie cette macro

Sub Test()
Dim DerLig As Long, Ligne As Long
Dim Cel As Range
Dim Feuille As Integer
    With Worksheets("Feuil1")
        DerLig = .Range("E" & Rows.Count).End(xlUp).Row
        For Each Cel In .Range("E1:E" & DerLig)
            If Cel.Value = "" Or Cel.Offset(0, 1).Value = "" Then
                Feuille = Right(Split(Cel.Offset(0, 2), " ")(0), Len(Split(Cel.Offset(0, 2), " ")(0)) - 1)
                Ligne = Split(Cel.Offset(0, 2), " ")(1)
                Worksheets(Feuille).Cells(Ligne, 1).Resize(, 2).Value = Cel.Offset(0, -4).Resize(, 2).Value
            End If
        Next Cel
    End With
End Sub

A+

Un grand merci pour cette réponse ultra rapide.

Je vais essayer et je vous tiens au courant.

Bien cordialement.

frangy Bonjour.

Ta macro marche à merveille, dés que tu auras un peu de temps, peux-tu me la détailler qui fait quoi par ligne.

Ça me permettra de paraitre un peu plus instruit

Encore un grand merci pour cette rapidité.

Bien cordialement.

Alain 06


Au secours le sujet est résolut et je n'arrive pas à trouver la case à cocher.

Merci à vous;

Alain 06

Pour commencer, j'ai ajouté des commentaires pour indiquer la fonction de chaque ligne de code

Si tu veux des précisions sur des points particuliers, n'hésites pas

Sub Test()
Dim DerLig As Long, Ligne As Long
Dim Cel As Range
Dim Feuille As Integer
    With Worksheets("Feuil1")
        'On détermine le numéro de la dernière ligne renseignée dans la colonne E
        DerLig = .Range("E" & Rows.Count).End(xlUp).Row
        'On balaye la plage renseignée de la colonne E
        For Each Cel In .Range("E1:E" & DerLig)
            'Si les cellules en colonne E et F n'ont pas de valeur affichées
            If Cel.Value = "" Or Cel.Offset(0, 1).Value = "" Then
                'On extrait le numéro de feuille indiqué dans la cellule en colonne G
                Feuille = Right(Split(Cel.Offset(0, 2), " ")(0), Len(Split(Cel.Offset(0, 2), " ")(0)) - 1)
                'On extrait le numéro de ligne indiqué dans la cellule en colonne G
                Ligne = Split(Cel.Offset(0, 2), " ")(1)
                'On copie/colle les coordonnées dans feuil1 depuis la feuille et ligne déterminées.
                Worksheets(Feuille).Cells(Ligne, 1).Resize(, 2).Value = Cel.Offset(0, -4).Resize(, 2).Value
            End If
        Next Cel
    End With
End Sub

Merci frangy, je vais digérer tranquillement ce que tu viens de m'envoyer.

Encore un très grand merci.

Alain 06

Bonjour frangy.

Ayant rencontré quelques erreurs lors de l'exécution de la macro dû essentiellement à une différence de texte dans les colonnes C et par contre coup la colonne G vide.

Que faut-il changer dans ta macro et à qu'elle ligne (à priori la 9) pour changer de colonne et passer en H qui travaille sur le N° de l'aire.

Sinon ça marche à merveille.

Encore un grand merci.

Cordialement.

Alain 06

Bonjour,

Si j’ai bien compris, tu souhaite déterminer le numéro de feuille et le numéro de ligne à partir de la donnée en colonne H.

'On extrait le numéro de feuille
Feuille = Right(Split(Cel.Offset(0, 3), " ")(0), Len(Split(Cel.Offset(0, 3), " ")(0)) - 1)
'On extrait le numéro de ligne
Ligne = Split(Cel.Offset(0, 3), " ")(1)

A+

Bonjour frangy

C'est parfait.

Les cellules C contiennent la désignation des aires qui vont s'afficher sur le GPS (Tomtom) et pour certaines, par rapport à l'original, j'ai modifié le texte pour avoir plus d'informations.

Je fais l'extraction à la main aire par aire (plus de 2800) c'est très long, je n'ai pas encore trouvé le moyen d'exploiter les données HTML de chaque département , ((11) LIMOUX PaN:Gt 20Pc Sv:Gt CCI 13499), ce qui veut dire Parc Nuit Gratuit, 20 Places, Service Gratuit, origine de l'aire ici Camping Car Info et son N° (unique pour chaque aire) très pratique pour une info immédiate.

Si dans ces cellules un seul signe est différent, la cellule reste vide et génère une erreur, d'où ma demande pour passer sur la colonne des N°.

Encore un grand merci pour ton aide rapide ,précise et précieuse.

A+

En retour, merci pour ces explications.

C'est toujours agréable de comprendre le sujet sur lequel on se penche.

A+

Rechercher des sujets similaires à "mise jour automatique differentes feuille"