Macro pour copier 1°cellule sur les 2 suivantes et ce sur 4059 lignes

Bonjour,

Je ne connais rien en macro, j'aurais besoin de votre aide pour résoudre ce problème : j'ai un tableau récupérer de mon prédécesseur qui contient des cellules fusionnées qui m'embête.

J'ai donc fait un copier coller du tableau avec liaisons.

Le souci vient des 2 premières colonnes sur les 4059 premières lignes .... j'avoue ne pas avoir très envie de les modifier une par une , ce qui explique pourquoi je souhaite une macro.

__ A__________________B

1 Date ____________Nom

2 10/10/17_________A

3 0 ________________ 0

4 0_________________ 0

5 12/08/18_________B

6 0_________________0

7 0_________________0

8 16/11/19_________C

9 0________________ 0

10 0 _______________ 0

et ainsi de suite....

j'aimerai une macro pour que les lignes à 0 soit égales aux précédentes : A3=A2, A4=A2, A6=A5, A7=A5, A9=A8, A10=A8 ......;idem pour colonne B

__ A _______________B

1 Date ___________Nom

2 10/10/17 _______ A

3 10/10/17 _______ A

4 10/10/17_______ A

5 12/08/18 _______B

6 12/08/18_______ B

7 12/08/18 _______B

8 16/11/19 ______C

9 16/11/19 ______C

10 16/11/19______ C

Pourriez-vous m'aider svp ?

D'avance merci

Bonjour,

Pas besoin de maccro (Données / Supprimer les doublons)

Et pour inverser les colonnes, Sélectionner la colonne B clic droit couper, sélectionner la colonne A, Insérer les cellules coupées.

Bonjour Valc,

Précision : en fait j'ai besoin de toutes ces lignes, dans les colonnes de C à U j'ai d'autres données qui elles correspondent bien.

Le problème est que ces lignes à zéro perturbent des tableaux croisés dynamiques et des formules d'autres feuilles liées.

J'aimerai donc "juste" modifier les colonnes A et B comme ceci A3=A2, A4=A2, A6=A5, A7=A5, A9=A8, A10=A8 ......etc

Cdt

bonjour,

une proposition via une macro, fait l'hypothèse que la dernière ligne de la colonne 3 est aussi la dernière ligne pour tout le tableau.

Sub aargh()
    With Sheets("feuil1") '<- à adapter nom de la feuille
        dl = .Cells(Rows.Count, 3).End(xlUp).Row
        dc = .Cells(1, Columns.Count).End(xlToLeft).Column
        t = .Cells(1, 1).Resize(dl, dc)
        For i = 2 To dl
            If t(i, 1) = 0 Then t(i, 1) = t(i - 1, 1): t(i, 2) = t(i - 1, 2)
        Next i
        .Cells(1, 1).Resize(dl, dc) = t
    End With
End Sub

ouaahhh, merci !!

la macro fait ce que je désespérai de devoir faire à la main, malheureusement cela modifie la "cellule référence".

'ai bêtement omis des détails .....

En fait les opérateurs remplissent une feuille excel "SAISIE" (le tableau rempli de cellules fusionnées) puis me le transmette pour traitées les données

j'ai fait un copier coller avec liaisons, donc en A2, A5, A8......il y a en réalité =SAISIE!A2, =SAISIE!A5, =SAISIE!A8....etc...idem en colonne B.

J'aimerai donc conserver cette référence qui me permet d'actualiser à chaque retour, et "juste" faire en sorte que les deux lignes du dessous soit égal à ma cellule référence pour avoir :

A2=SAISIE!A2

A3=A2 ......etc

A4=A2

A5=SAISIE!A5

A6=A5

A7=A5

......etc

c'est le même principe pour la colonne B (avec SAISIE!B2)

mes explications on l'air floues ?

bonjour,

pour copier les formules voici.

Sub aargh()
    With Sheets("feuil1") '<- à adapter nom de la feuille
        dl = .Cells(Rows.Count, 3).End(xlUp).Row
        For i = 2 To dl
            If .Cells(i, 1) = 0 Then .Cells(i, 1).Formula = .Cells(i - 1, 1).Formula: .Cells(i, 2).Formula = .Cells(i - 1, 2).Formula
        Next i
    End With
End Sub

Un énorme merci !!!!

mon souci est résolu et toutes les formules semblent fonctionner, les tableaux croisés aussi

encore merci

Rechercher des sujets similaires à "macro copier suivantes 4059 lignes"